微信小程序实现搜索功能


Posted in Javascript onMarch 10, 2020

在页面search.wxml中,定义一个input输入框以及搜索的点击按钮,分别为它们绑定点击事件handleInputChange()handleSearch()的事件,同时在它们的下面定义搜索的列表,代码如下所示:

<view class="search-header">
 <input class="search-input" bindtap="handleInputChange" />
 <view class="search-btn" bindtap="handleSearch">搜索</view>
</view>

<view>
 <view wx:for="{{list}}" wx:key="{{index}}" class="item" id="{{item.id}}" bindtap="handleItemTap">
 <view>{{ item }}</view>
 <view class="item-message">{{ item.message }}</view>
 </view>
</view>

在逻辑文件search.js中,在data中存放list的数据,为空数组,存放搜索列表的数据,同时定义staticData,在里面定义inputValue,里面为空字符串,是input输入框的值,代码如下所示:

data: {
 list: []
},
staticData: {
 inputValue: ""
}

在search.js的onLoad()生命周期函数中,调用请求数据的函数getSearchResult(),这样在一进入页面的时候就会获取到所有的数据,不过由于并没有关键字keyword,需要传空字符串,代码如下所示:

onLoad() {
 this.getSearchResult("");
 },
getSearchResult(keyword) {
 wx.request({
  url: 'xxxxxx',
  data: {
  keyword: this.staticData.inputValue
  },
  method: "POST",
  header: {
  'content-type': 'application/x-www-form-urlencoded' 
  },
  success: this.getSearchResultSucc.bind(this)
 })
},

在search.js中,定义一个响应成功后的函数getSearchResultSucc(),判断响应的数据是否存在。如果存在通过this.setData()方法将响应后的数据赋值给list,如果不存在,list仍然为空数组,代码如下所示:

getSearchResultSucc(res) {
 // console.log(res)
 if (res.data.ret) {
  const result = res.data.data;
  this.setData({
  list: result
  })
 } else {
  this.setData({
  list: []
  })
 }
}

在search.js中,定义handleInputChange()函数,这个函数也是input输入框绑定的函数,传入事件对象e,然后通过e.detail.value赋值给staticData的inputValue,代码如下所示:

handleInputChange(e) {
 this.staticData.inputValue = e.detail.value;
}

在search.js中,定义handleSearch()函数,这个函数也是之前搜索按钮所绑定的函数,在这个里面重新发起一次请求,携带keyword关键字发起请求,代码如下所示:

handleSearch (keyword) {
 this.getSearchResult(keyword)
}

如果想要点击在搜索以后显示的列表,可以在列表中绑定handleItemTap()事件,传入事件对象e,通过 e.currentTaret.id去获取到点击的id,然后再通过 wx.navigateTo()方法跳转到相应的详情页,代码如下所示:

handleItemTap(e) {
 wx.navigateTo({
  url: '/pages/detail/detail?id=' + e.currentTaret.id
 })
}

知识点补充:微信小程序云开发模糊查找功能实现

//连接数据库
const db = wx.cloud.database()
var that = this
db.collection(‘newsname').where({
//使用正则查询,实现对搜索的模糊查询
_name: db.RegExp({
regexp: value,
//从搜索栏中获取的value作为规则进行匹配。
options: ‘i',
//大小写不区分
})
}).get({
success: res => {
console.log(res)
that.setData({
search_list: res.data
})
}
})

总结

到此这篇关于微信小程序实现搜索功能的文章就介绍到这了,更多相关微信小程序搜索功能内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
列表内容的选择
Jun 30 Javascript
网页自动刷新,不产生嗒嗒声的一个解决方法
Mar 27 Javascript
jquery下jstree简单应用 - v1.0
Apr 14 Javascript
jquery中的mouseleave和mouseout的区别 模仿下拉框效果
Feb 07 Javascript
在AngularJS中使用AJAX的方法
Jun 17 Javascript
移动端点击态处理的三种实现方式
Jan 12 Javascript
canvas实现图片根据滑块放大缩小效果
Feb 24 Javascript
基于 Vue 的树形选择组件的示例代码
Aug 18 Javascript
详解如何去除vue项目中的#——History模式
Oct 13 Javascript
Vue中遍历数组的新方法实例详解
Jul 21 Javascript
js+html实现点名系统功能
Nov 05 Javascript
element-ui如何防止重复提交的方法步骤
Dec 09 Javascript
原生JS实现烟花效果
Mar 10 #Javascript
JS实现iframe中子父页面跨域通讯的方法分析
Mar 10 #Javascript
详解vue-template-admin三级路由无法缓存的解决方案
Mar 10 #Javascript
JS Html转义和反转义(html编码和解码)的实现与使用方法总结
Mar 10 #Javascript
js模拟实现烟花特效
Mar 10 #Javascript
JS实现放烟花效果
Mar 10 #Javascript
JS实现烟花爆炸效果
Mar 10 #Javascript
You might like
php的curl实现get和post的代码
2008/08/23 PHP
二招解决php乱码问题
2012/03/25 PHP
用js实现的一个Flash滚动轮换显示图片代码生成器
2007/03/14 Javascript
JS解密入门之凭直觉解
2008/06/25 Javascript
js+css在交互上的应用
2010/07/18 Javascript
Jquery replace 字符替换实现代码
2010/12/02 Javascript
js禁止页面刷新禁止用F5键刷新禁止右键的示例代码
2013/09/23 Javascript
js设置cookie过期及清除浏览器对应名称的cookie
2013/10/24 Javascript
jquery 获取dom固定元素 添加样式的简单实例
2014/02/04 Javascript
javascript中的3种继承实现方法
2016/01/27 Javascript
浅析JavaScript中浏览器的兼容问题
2016/04/19 Javascript
详解Bootstrap的iCheck插件checkbox和radio
2016/08/24 Javascript
深入理解javascript函数参数与闭包
2016/12/12 Javascript
解决JS内存泄露之js对象和dom对象互相引用问题
2017/06/25 Javascript
NodeJs操作MongoDB教程之分页功能以及常见问题
2019/04/09 NodeJs
js中的深浅拷贝问题简析
2019/05/10 Javascript
jquery中为什么能用$操作
2019/06/18 jQuery
Vue+Node实现商品列表的分页、排序、筛选,添加购物车功能详解
2019/12/07 Javascript
python文件和目录操作方法大全(含实例)
2014/03/12 Python
python批量修改文件名的实现代码
2014/09/01 Python
使用Python实现一个简单的项目监控
2015/03/31 Python
Python中.py文件打包成exe可执行文件详解
2017/03/22 Python
《Python学习手册》学习总结
2018/01/17 Python
Python设计模式之装饰模式实例详解
2019/01/21 Python
Python编写一个验证码图片数据标注GUI程序附源码
2019/12/09 Python
解决python运行启动报错问题
2020/06/01 Python
关于Kotlin中SAM转换的那些事
2020/09/15 Python
微软日本官方网站:Microsoft日本
2017/11/26 全球购物
请用用Java代码写一个堆栈
2012/01/26 面试题
产品销售员岗位职责
2013/12/18 职场文书
搞笑婚礼主持词
2014/03/13 职场文书
2015年团支书工作总结
2015/04/03 职场文书
2015年小学语文工作总结
2015/05/25 职场文书
Python机器学习之基础概述
2021/05/19 Python
win11无线投屏在哪设置? win11无线投屏功能的使用方法
2022/04/08 数码科技
JS前端可扩展的低代码UI框架Sunmao使用详解
2022/07/23 Javascript