javascript和HTML手机端实现多条件筛选的实战记录(筛选层的展示与隐藏、AJAX传输数组)

在这里插入图片描述
实现多条件筛选功能在JavaScript和HTML中可以分为以下几个步骤:

  • HTML页面布局: 设计你的页面布局,包括筛选条件的选择器和结果展示区域。‘
  • ’ JavaScript逻辑:通过JavaScript监听筛选条件的变化,并根据选择的值对结果进行筛选。
  • 动态展示: 实时更新页面上的结果展示区域。

HTML容器

<div class="hd" style="margin-top: 40px;"><div class="lock-title">贷款情况</div><div class="list" id="loan"><ul><li class="lock-filter-btn">工商银行</li><li class="lock-filter-btn">农业银行</li></ul></div></div><div class="hd"><div class="lock-title">抵押方式</div><div class="list" id="loan1"><ul><li class="lock-filter-btn">信用贷款</li><li class="lock-filter-btn">抵押贷款</li><li class="lock-filter-btn">质押贷款</li><li class="lock-filter-btn">担保贷款</li></ul></div></div>

javascript操作DOM样式和取值

设置全局变量loanData

    var loanData = ['', '', '', '', '', '', '', '', ''];

DOM样式选择

$("#loan ul li").click(function () {if ($(this).hasClass("active")) {$("#loan ul li").removeClass("active");loanData[0] = '';} else {$(this).addClass("active").siblings().removeClass("active");loanData[0] = $(this).text();}
});$("#loan1 ul li").click(function () {if ($(this).hasClass("active")) {$("#loan1 ul li").removeClass("active");loanData[1] = '';} else {$(this).addClass("active").siblings().removeClass("active");loanData[1] = $(this).text();}
});

筛选层的展示与隐藏

    //展示筛选项$('#filterBtn').click(function () {$('.screen').css('display','block');})//隐藏筛选
$(".lock-top").click(function () {$('.screen').css('display', 'none');
});//取消筛选
$("#reset").click(function () {loanData = ['', '', '', '', '', '', '', '', '']$("ul li").removeClass("active");//console.log(loanData);
});

将数组通过ajax传递至后台

 var jsonData = JSON.stringify(loanData);$.ajax({type: 'get',async: true,data: {keywords: keywords,fromType: fromType,loanData: jsonData},url: './api/api.php?act=getMarkers&token=3cab7ce4142608c0f40c785b5ab5ca24',dataType: "json",success: function (res) {//console.log(res.searchData);var data = res.data;//异常处理;if (data.length > 0) {intMap(data, type);} else {layer.msg("未搜索到数据", {icon: 5, time: 1000}, function () {intMap(data, 1);})}},error: function (err) {console.log("百度地图开发平台API:请求数据失败!" + JSON.stringify(err));}});

后台接受数据变量

@$loanData = json_decode($_GET["loanData"], true);
if ($loanData[0] != "") {$sql .= " AND poi_loan = '" . $loanData[0] . "'";
}
if ($loanData[1] != "") {$sql .= " AND poi_mortgage = '" . $loanData[1] . "'";
}
if ($loanData[2] != "") {$sql .= " AND poi_loan_amount = '" . $loanData[2] . "'";
}
if ($loanData[3] != "") {$sql .= " AND poi_vscosity = '" . $loanData[3] . "'";
}
if ($loanData[4] != "") {$sql .= " AND poi_industry = '" . $loanData[4] . "'";
}
if ($loanData[5] != "") {$sql .= " AND poi_product = '" . $loanData[5] . "'";
}
if ($loanData[6] != "") {$sql .= " AND poi_loan_type = '" . $loanData[6] . "'";
}
if ($loanData[7] != "") {$sql .= " AND poi_loan_category = '" . $loanData[7] . "'";
}
if ($loanData[8] != "") {$sql .= " AND poi_liaison = '" . $loanData[8] . "'";
}

JSON.stringify的用法

JSON.stringify() 是一个 JavaScript 方法,用于将 JavaScript 值(对象、数组、字符串、数字、布尔值等)转换为 JSON 格式的字符串。这个方法属于 JavaScript 的内置对象 JSON,用于处理 JSON 数据。

语法

JSON.stringify(value, [replacer], [space])
  • value:必需,要转换的 JavaScript 值(通常为对象或数组)。
  • replacer:可选,用于转换结果的函数或数组。如果提供,它可以改变转换过程中的字符串化行为。
  • space:可选,用于在输出字符串中添加额外的空格或换行符,以使其更易于阅读。可以是数字(表示空格数)或字符串(直接添加到输出中)。

示例

基本用法
const obj = {name: "John",age: 30,city: "New York"
};const jsonString = JSON.stringify(obj);
console.log(jsonString); // '{"name":"John","age":30,"city":"New York"}'
使用 replacer 函数
const obj = {name: "John",age: 30,city: "New York"
};const replacer = function(key, value) {if (typeof value === 'string') {return undefined; // 过滤掉所有的字符串属性}return value;
};const jsonString = JSON.stringify(obj, replacer);
console.log(jsonString); // '{"age":30}'
使用 space 参数
const obj = {name: "John",age: 30,city: "New York"
};const jsonString = JSON.stringify(obj, null, 2); // 使用 2 个空格缩进
console.log(jsonString);
/* 输出:
{"name": "John","age": 30,"city": "New York"
}
*/

注意事项:

  • JSON.stringify() 只能序列化可枚举的属性。对于不可枚举的属性,该方法会忽略。
  • 如果对象中存在循环引用,即对象的属性值间接或直接引用了对象本身,JSON.stringify() 会抛出错误。例如:var obj = {}; obj.a = obj; 在这种情况下,你需要提供一个自定义的 replacer 函数来处理循环引用。

@漏刻有时

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/267261.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nginx的location与rewrite

目录 一.location 二.rewrite rewrite跳转实现&#xff1a; 语法格式&#xff1a;rewrite [flag]; flag标记说明&#xff1a; 三.基于域名跳转 四.基于ip跳转 五.基于旧域名跳转到新域名后面加目录 六.基于参数匹配的跳转 可以同过全局变量来匹配&#xff1a; 基于目…

vue3 element-plus 日期选择器 el-date-picker 汉化

vue3 项目中&#xff0c;element-plus 的日期选择器 el-date-picker 默认是英文版的&#xff0c;如下&#xff1a; 页面引入&#xff1a; //引入汉化语言包 import locale from "element-plus/lib/locale/lang/zh-cn" import { ElDatePicker, ElButton, ElConfigP…

EasyExcel使用模板导出复杂Excel

1&#xff09;添加easyexlce的依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.0.0-beta1</version> </dependency>2&#xff09;添加excel模板文件 实现的效果&#xff1a;…

智能优化算法应用:基于蝙蝠算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于蝙蝠算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于蝙蝠算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.蝙蝠算法4.实验参数设定5.算法结果6.参考文献7.MA…

裸机单片机适用的软件架构

单片机通常分为三种工作模式&#xff0c;分别是 1、前后台顺序执行法 2、操作系统 3、时间片轮询法 1、前后台顺序执行法 利用单片机的中断进行前后台切换&#xff0c;然后进行任务顺序执行&#xff0c;但其实在…

【产品】Axure入门

Axure入门 一、Axure概述1.1 简介1.2 优点1.3 安装1.4 汉化 二、Axure的使用2.1 菜单栏2.1.1 菜单栏-文件2.1.2 菜单栏-视图 2.2 发布2.2.1 预览2.2.2 生成html代码 一、Axure概述 1.1 简介 Axure是一款专业的快速原型设计工具&#xff0c;全名为RP Axure。它是美国Axure Sof…

TypeScript 常用高级类型

目录 前言&#xff1a; TypeScript 常用高级类型 基本概念 高级类型 1. 交叉类型&#xff08;Intersection Types&#xff09; 2. 联合类型&#xff08;Union Types&#xff09; 3. 映射类型&#xff08;Mapped Types&#xff09; 4. 条件类型&#xff08;Conditional…

【51单片机系列】文字取模软件使用

软件链接&#xff1a;https://pan.baidu.com/s/1k-ND9vJReW_KHMWx8uwpcQ?pwdgz8w 提取码&#xff1a;gz8w 双击打开软件&#xff0c;选择【基本操作】->【新建图像】&#xff0c;设置图像的宽度和高度为8。点击确定后将在显示窗口出现一个8x8的白色格子&#xff0c;类似于…

简单的 u-popup 弹出框

uniapp中的popup组件可以用于弹出简单的提示框、操作框、菜单等。它可以通过position属性控制弹出框的位置&#xff0c;不同的position值会使得弹出框呈现不同的弹出形式 目录 一、实现思路 二、实现步骤 ①view部分展示 ②JavaScript 内容 ③css中样式展示 三、效果展示 …

python:五种算法(HHO、WOA、GWO、PSO、GA)求解23个测试函数(python代码)

一、五种算法简介 1、哈里斯鹰优化算法HHO 2、鲸鱼优化算法WOA 3、灰狼优化算法GWO 4、粒子群优化算法PSO 5、遗传算法GA 二、5种算法求解23个函数 &#xff08;1&#xff09;23个函数简介 参考文献&#xff1a; [1] Yao X, Liu Y, Lin G M. Evolutionary programming …

宝塔PostgreSQL设置数据库远程访问

宝塔PostgreSQL设置数据库远程访问 宝塔的PostgreSQL1. 添加数据库2. 打开PostgreSQL设置界面3. 修改配置4. 重载配置/重启数据库 Docker的PostgreSQL1. postgresql.conf2. pg_hba.conf3. 重启数据库 注意其他问题 宝塔PostgreSQL设置数据库远程访问&#xff1f;docker容器Post…

解决夜神模拟器与Android studio自动断开的问题

原因&#xff1a;夜神模拟器的adb版本和Android sdk的adb版本不一致 解决办法&#xff1a; 1.找到android的sdk &#xff08;1&#xff09;File--->Project Structure (2)SDK Location:记下sdk的位置 2.找到sdk中的adb文件 SDK-->platform-tools-->adb.exe 3.复制…