小程序云开发入门——获取用户搜索内容

news/2025/2/23 10:36:59

1.先来做一个好看的搜索框(我这里是白嫖了的样式)

详细见:(4条消息) 小程序云开发实现搜索功能_a_靖的博客-CSDN博客_微信小程序云开发搜索功能

wxml页面记得定义获取用户输入数据的getKey()方法和 搜索按钮的点击事件goSearch()

<view class='page_row'>
    <view class="search">
      <view class="df search_arr">
        <icon class="searchcion" size='20' type='search'></icon>
        <input placeholder="请输入关键字" bindinput="getKey"></input>
      </view>
    </view>
    <view class='sousuo' bindtap="goSearch">搜索</view>
  </view>

对应的一些样式:

.search{
    width: 80%;
  }
  .search_arr {
    border: 1px solid #d0d0d0;
    border-radius: 10rpx;
    margin-left: 20rpx;
  }
  .search_arr input{
    margin-left: 60rpx;
    height: 60rpx;
    border-radius: 5px;
  }
  .bc_text {
    line-height: 68rpx;
    height: 68rpx;
    margin-top: 34rpx;
  }
   
  .sousuo {
    margin-left: 15rpx;
    width: 15%;
    line-height: 150%;
    text-align: center;
    border: 1px solid #d0d0d0;
    border-radius: 10rpx;
  }
  .page_row{
    display: flex;
    flex-direction: row
  }
  .searchcion {
    margin: 10rpx 10rpx 10rpx 10rpx;
    position: absolute;
    left:25rpx;
    z-index: 2;
    width: 20px;
    height: 20px;
    text-align: center;
  }

 

2.编写getKey()和goSearch()方法,分输入为空、不为空两种情况

javascript">Page({
    data:{
        key:null
    },
    getKey(e){
        //console.log(e.detail.value) 获取键盘输入的数据
        this.setData({
            key:e.detail.value
        })
    },
    goSearch(){
        console.log(this.data.key)
        if(this.data.key){
            console.log('可以执行搜索')
        }else{
            //搜索内容为空
            wx.showToast({
                icon:'error',
                title:'请输入搜索内容'
            })
        }
    }
})

 3.将搜索字段匹配到数据库,沿用上一节的多字段模糊搜索

javascript">let db = wx.cloud.database()
let _ = db.command
Page({
    data:{
        key:null
    },
    getKey(e){
        //console.log(e.detail.value) 获取键盘输入的数据
        this.setData({
            key:e.detail.value
        })
    },
    goSearch() {
        console.log(this.data.key)
        if (this.data.key) {
            console.log('可以执行搜索')
            let key=this.data.key
            db.collection('news')
                .where(_.or([{ //标题
                        title: db.RegExp({ //使用正则查询,实现对搜索的模糊查询
                            regexp: key, //要搜索的词
                            options: 'i', //大小写不区分
                        }),
                    },
                    { //描述
                        desc: db.RegExp({
                            regexp:key,
                            options: 'i',
                        }),
                    },
                    { //内容
                        content: db.RegExp({
                            regexp: key,
                            options: 'i',
                        }),
                    }
                ])).get()
                .then(res => {
                    console.log('搜索成功', res)
                    this.setData({
                        list: res.data
                    })
                })
                .catch(res => {
                    console.log('搜索失败', res)
                })
        } else {
            //搜索内容为空
            wx.showToast({
                icon: 'error',
                title: '请输入搜索内容'
            })
        }
    }
})

4.wxml新增的搜索结果界面及样式

<view wx:if="{{list&&list.length>0}}">
搜索结果如下:
  <view wx:for="{{list}}" wx:key='index'>
    <view class="item">
    <view>标题:{{item.title}}</view>
    <view>描述:{{item.desc}}</view>
    <view>内容:{{item.content}}</view>
    </view>
  </view>
</view>

<view wx:if="{{list&&list.length==0}}">
搜索内容为空
</view>
  .item{
    margin: 20rpx;
    border-bottom: 1px solid gainsboro;
    color: gray;
  }

5.实现效果:

 

 


http://www.niftyadmin.cn/n/1243399.html

相关文章

【我的Android进阶之旅】Android Studio 使用Gradle编译出现错误:java.lang.IllegalStateException: Already finished

一、问题描述 今天下午编译项目,突然出现了如下所示的错误:java.lang.IllegalStateException: Already finished FAILURE: Build failed with an exception.* What went wrong: Already finished* Try: Run with --stacktrace option to get the stack trace. Run with --d…

Day1.小笔记Python

条件分支 python的比较 左边大于右边 > 左边大于等于右边 > 左边小于右边 < 左边小于等于右边 < 左边等于右边 左边不等于右边 ! python的条件分支语法 if条件&#xff1a; ​ 条件为真&#xff08;True&#xff09;执行的操作 else&#xff1a; ​ 条…

【我的Android进阶之旅】你可能不知道android.view.View#setAlpha()方法也会影响你的APP性能!

一、问题描述 最近在优化APP的性能的时候,发现了一个平时完全没有注意到的一个能够影响APP性能的代码。这个代码就是调用了android.view.View#setAlpha()方法。 1.1 需求描述 APP有个需求,是在滑屏的过程中,蒙版的背景颜色会动态的变化透明度。 1.1.1 关于蒙版是啥? 下…

小程序云开发入门——登录注册页

目录 准备工作 获取用户的输入值 校验用户输入值是否符合规范 注册功能的实现 登录信息的获取与校验 登录并跳转到首页 登录注册首页之间的跳转 保存用户登录状态 退出登录 准备工作 1.新建一个项目&#xff0c;选择不使用云开发&#xff0c;并填写好自己的APPID 2.删除…

Day2.Java的历史和安装卸载

⭐Java帝国的诞生 C&C &#x1f349;1972年c诞生 贴近硬件 运行极快 效率极高 操作系统 编译器 数据库 网络系统 指针和内存管理 &#x1f349;1982年C诞生 面向对象 兼容C 图形领悟 游戏 &#x1f349;java初生 1995的网页简单而简陋 缺乏互动性 图形界面的程序&#…

【神兵利器】你是否也想生成这样有逼格的代码图?

一、现状 你是否想把你的代码片段导出来变成一个很有逼格的图片呢&#xff1f;平常写博客的时候&#xff0c;都是直接贴代码块&#xff0c;如下所示&#xff0c;一个简单的HelloWorld程序&#xff0c;平常代码都是这样展示的。 package com.csdn.oyp;/*** 作者&#xff1a;欧…

小程序云开发入门——问卷测评小程序实战(1)

创建小程序项目 选择云开发后端服务 删除项目里的无用文件 1.删除除了index外的所有页面 2.所带的页面文件一律删除&#xff0c;右击资源管理器中删除 3.清空后的页面显示 4.app.josn里面可以改名

【神兵利器】你是否想让你的公众号博客更有逼格呢,快使用Markdown Nice吧!

一、有逼格的公众号排版 先打开下面的链接看看&#xff0c;是不是排版比较有逼格&#xff1f; 你真的会写 Markdown 么&#xff1f; 这里面的代码风格&#xff0c;和我上篇博客介绍的 carbon.sh 类似的。 【神兵利器】你是否也想生成这样有逼格的代码图? 其实我之前也是在一…