微信小程序实现搜索功能


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 相关文章推荐
js和jquery批量绑定事件传参数一(新猪猪原创)
Jun 23 Javascript
Js event事件在IE、FF兼容性问题
Jan 01 Javascript
从面试题学习Javascript 面向对象(创建对象)
Mar 30 Javascript
instanceof和typeof运算符的区别详解
Jan 06 Javascript
JQuery CheckBox(复选框)操作方法汇总
Apr 15 Javascript
深入浅析JavaScript函数前面的加号和叹号
Jul 09 Javascript
基于bootstrap实现广告轮播带图片和文字效果
Jul 22 Javascript
详解node.js平台下Express的session与cookie模块包的配置
Apr 26 Javascript
如何使用JS在HTML中自定义字符串格式化
Jul 20 Javascript
vue 利用路由守卫判断是否登录的方法
Sep 29 Javascript
微信小程序返回上一页传参并刷新过程解析
Dec 13 Javascript
微信小程序点击view动态添加样式过程解析
Jan 21 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
水质对咖图啡风味的影响具体有哪些
2021/03/03 冲泡冲煮
thinkphp浏览历史功能实现方法
2014/10/29 PHP
thinkPHP简单导入和使用阿里云OSSsdk的方法
2017/03/15 PHP
jquery parent和parents的区别分析
2013/10/02 Javascript
node.js中的fs.lchown方法使用说明
2014/12/16 Javascript
nodejs个人博客开发第六步 数据分页
2017/04/12 NodeJs
JavaScript运动框架 链式运动到完美运动(五)
2017/05/18 Javascript
JavaScript中var、let、const区别浅析
2018/06/24 Javascript
vue项目打包部署_nginx代理访问方法详解
2018/09/20 Javascript
ES6 Set结构的应用实例分析
2019/06/26 Javascript
[01:11:21]DOTA2-DPC中国联赛 正赛 VG vs Elephant BO3 第一场 3月6日
2021/03/11 DOTA
python实现根据ip地址反向查找主机名称的方法
2015/04/29 Python
python实现决策树、随机森林的简单原理
2018/03/26 Python
python pcm音频添加头转成Wav格式文件的方法
2019/01/09 Python
Python第三方库face_recognition在windows上的安装过程
2019/05/03 Python
PyCharm 配置远程python解释器和在本地修改服务器代码
2019/07/23 Python
在python中logger setlevel没有生效的解决
2020/02/21 Python
Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法
2020/03/20 Python
jupyter 实现notebook中显示完整的行和列
2020/04/09 Python
Python执行时间的几种计算方法
2020/07/31 Python
带有css3动画效果的兼容多浏览器简单导航条示例
2014/01/26 HTML / CSS
La Senza官网:北美顶尖性感内衣品牌
2018/08/03 全球购物
成考报名单位证明范本
2014/01/16 职场文书
《兰亭集序》教学反思
2014/02/11 职场文书
好人好事事迹材料
2014/02/12 职场文书
《口技》教学反思
2014/02/21 职场文书
计算机科学系职业生涯规划书
2014/03/08 职场文书
户外活动总结范文
2014/04/30 职场文书
管理工程专业求职信
2014/08/10 职场文书
心得体会的写法
2014/09/05 职场文书
文案策划岗位职责
2015/02/11 职场文书
语文教师求职信范文
2015/03/20 职场文书
民事起诉状范文
2015/05/19 职场文书
初婚未育证明样本
2015/06/18 职场文书
高温慰问简报
2015/07/21 职场文书
2016年教师学习廉政准则心得体会
2016/01/20 职场文书