微信小程序实现筛选的功能

这篇具有很好参考价值的文章主要介绍了微信小程序实现筛选的功能。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、实现的效果图

小程序筛选,微信小程序,前端,小程序小程序筛选,微信小程序,前端,小程序小程序筛选,微信小程序,前端,小程序

 二、实现的原理

在页面加载的时候,显示最原始的数据,当我们点击按钮的时候,触发筛选的功能,只显示符合条件的数据,再次点击的时候取消筛选的功能,显示原本的数据

在数据的显示过程中,可以设置一个临时的数组,在筛选的时候将临时数组清空,取消筛选的时候再将数值重新赋值给临时的数组显示出来

三、实现的代码

test1.js

/*test1.js*/
const app = getApp();
Page({
/* 页面的初始数据 */
data:{
studentFilter:false,//筛选数据的初始状态
studentList:null//筛选的数据
},

getstudentInfo:function(options){
    var that = this;
    wx.request({
       url: "http://localhost/test/index.php",//这里修改成自己的url地址
      success: function(rep) {
               if (that.data.studentFilter) { // 如果已经筛选过,则展示原始数据
                that.setData({
studentList: that.data.items,//已经筛选过数据,再次点击为取消筛选,可以将原本的数据赋值给studentList数组,然后再将studentList显示在页面上,就能够保证在点击之后显示原本的数据项
                  studentFilter: false,//false为为筛选的状态
                  items1:[],//一开始显示在页面的数据为items1的数组,在筛选之后要将原数组的内容消失,可以将数组的内容设置为空
                });
              } 
              else { // 否则进行数据筛选
             var studentList = that.data.items.filter(function(item) {
             return item.sex == '男'; // 筛选的内容为'projectType '值为'学生'               
                });
                that.setData({
                  studentList: studentList,//将筛选的数据复制给studentList数组
                  studentFilter: true,//true表示为筛选的状态
                  items1:[],//一开始显示在页面的数据为items1的数组,在筛选之后要将原数组的内容消失,可以将数组的内容设置为空
                });
              }
      }

                
    });
},

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {
        var that = this;
        wx.request({
             url: "http://localhost/test/index.php",
            success: function (rep){
              console.log(rep.data)
             that.setData({
                items: rep.data,//原始的数据项
                items1:rep.data//数据的中转站,用来显示被筛选的数据,也能够随时的清空不影响到其他数据的显示
              });
          const itemsHeight = that.data.items.length * 50 // 假设每个 item 的高度为 50px
          wx.setStorageSync('pageHeight', `${itemsHeight}px`)//这两句命令的作用时设置文本框显示的高度,当一个item项里面有多行数据时,会自动调整文本框的高度
            }
        })   /*获取项目库的数据*/ 
    },
})

test1.wxml

<!-- test1.wxml -->
<view class="background">
<image class="backgroundimage" src="https://pic4.zhimg.com/v2-b1e47e987bdb3ae7cfe60089acb4b475_r.jpg?source=1940ef5c"></image>
<!-- 筛选学生的数据 -->
<image class=" icon1" src="../../static/学生.jpg" bindtap="getstudentInfo" wx:if="{{studentFilter == false}}" mode="widthFix"/>
<image class=" icon1" src="../../static/学生active.jpg" bindtap="getstudentInfo" wx:else mode="widthFix"/>


<!--学生数据-->
<view class="program-list" wx:for="{{ studentList }}">
  <view class="product-item">
    <view>{{item.name}}</view>
              <view>{{item.program_type}}</view>
              <view>{{item.sex}}</view>
    </view>
</view>


<!--初始数据-->
<view class="program-list" wx:for="{{items1}}">
  <view class="product-item">
              <view>{{item.name}}</view>
              <view>{{item.program_type}}</view>
              <view>{{item.sex}}</view>
  </view>
</view>

</view>

test1.wxss文章来源地址https://www.toymoban.com/news/detail-634829.html

.background{
    position: relative;
  }/*背景图容器*/
  .backgroundimage{
    position: fixed;
    background-size: cover;/*设置了背景图铺满整个容器*/
    background-repeat: no-repeat;/*设置不重复平铺*/
    background-position: center center;/*设置了背景图在容器中的位置为居中*/
    height: 100%;
    width: 100%;
    background-attachment: fixed; /* 将背景图固定不动 */
    z-index: -1;
  }/*背景图的样式*/
.product-item {
    margin: auto;
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    background-color:aliceblue;
    width: 600rpx;
    border-radius: 15rpx;
    height: 210rpx;
  }/*显示被搜索的内容*/
  
  .program-list{
    padding: 15rpx;
  }/*初始数据文本框的容器,用来确认内部每个item项的样式*/
  
  .program-item{
      margin: auto;
      display: flex;
      flex-direction: column;
      justify-content: space-around;
      background-color:rgb(250, 111, 11);
      width: 600rpx;
      border-radius: 15rpx;
      height: 210rpx;
  }/*每一个item项的属性*/
  
  .icon1{
    width: 85rpx;
    height: 85rpx;
  }/*筛选的样式*/
  

到了这里,关于微信小程序实现筛选的功能的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【微信小程序】下拉刷新功能实现

    微信小程序开发系列 在开发微信小程序中经常会需要下拉页面进行更新要页面数据的功能,微信小程序提供了onPullDownRefresh函数。该函数作用是监听用户下拉动作。 监听用户下拉刷新事件。 需要在app.json的window选项中或页面配置中开启enablePullDownRefresh: 可以通过wx.startPullD

    2024年02月12日
    浏览(48)
  • 微信小程序实现订阅消息功能

             * 源码已经上传到资源处,需要的话点击跳转下载 |  源码下载         小程序中的订阅内容在日常中大家都会使用到,一般在支付的时候,会收到支持成功的消息,里面有一些基础信息花费多少以及是使用在什么地方,订阅消息是小程序向用户发送消息的方式

    2024年02月08日
    浏览(57)
  • 微信小程序--实现番茄钟功能

    经常使用番茄钟的各种app,自己也想尝试一下制作,该小程序主要实现了番茄时钟、效率统计等功能。 设计如下: 代码地址:https://gitcode.net/weiba_tao/mypractice  代码如下: 页面分为选择时间及任务页,倒计时页,两个页面用hidden进行切换 ---wxml 选择页---    ---wxml 倒计时页

    2024年02月11日
    浏览(51)
  • 微信小程序登录功能实现(最新)

    众所周知小程序登录自 2022年2月21日24时起回收通过open-data展示个人信息的能力 ,啥意思呢,就是头像展示成灰色,昵称展示成微信用户,例如: 话不多说直接正题。         首先介绍第一种,费力的方式:依然还是用 open-type 的值设置为 chooseAvatar ,当用户选择需要使用

    2024年02月08日
    浏览(57)
  • 微信小程序(原生)搜索功能实现

     一、效果图  二、代码 wxml scss js json文件是引入的vant

    2024年02月11日
    浏览(46)
  • 微信小程序抽奖 简单功能实现

    抽奖是一种常见的互动活动,在微信小程序中也有很多不同的实现方式。以下是一份简单的微信小程序抽奖源码,供参考:在 wxml 文件中添加抽奖的页面布局: 在js 文件中添加抽奖逻辑: 实现了一个简单的地奖功能,用户点击“开始抽奖“按知后,抽奖结里会从奖品列表中贿机

    2024年02月16日
    浏览(52)
  • 微信小程序搜索框功能实现

    说明:本文只涉及了微信小程序前端部分的代码实现,需要的后台列表数据原本已经查询出来了的 思路实现: 1、首先确定自己想要的搜素效果大概是怎么样的,我想到的大概效果是在搜索输入框输入内容时根据搜索内容是否被包含在资讯列表的标题里面,如果包含在里面,

    2024年04月28日
    浏览(34)
  • 微信小程序:简单实现地图导航功能实现

    里面的小图片需要自己找,真机调试时,点击导航即可进入地图,可导航,规划路线… 效果图 代码: wxml js wxss

    2024年02月11日
    浏览(64)
  • 【微信开发】微信小程序实现实时聊天功能

    最近在做一个项目,需要运用到实时聊天功能,分享一下。      分为: 1.界面如何布局以及细节; 2.如何实现实时更新; 3.全部代码展示;         一、界面如何布局以及细节:         1.说到底,聊天界面就是循环一个数组,每一行为一个单位(item),循环(wx.for)我

    2024年02月04日
    浏览(54)
  • 实现微信小程序下拉刷新功能

    方法一:全局设置下拉刷新功能      1、在app.json的\\\"window\\\"中进行配置         (1)把\\\"backgroundTextStyle\\\":“light\\\"改为\\\"backgroundTextStyle”:“dark”         (2)添加\\\"enablePullDownRefresh\\\":true,开启下拉刷新。       2、在app.js中增加两个生命周期函数   方法一:全局设置下拉刷新

    2024年02月13日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包