php开发实战分析(10):城市区县联动筛选

2023-10-22 15:50

本文主要是介绍php开发实战分析(10):城市区县联动筛选,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

php开发实战分析系列目录

  1. php开发实战分析(1):mysql操作字段(添加、删除、修改,多数据表中新增多个字段)
  2. php开发实战分析(2):cookie的动态使用(设置、获取、删除、猜你喜欢原理、购物车调用)
  3. php开发实战分析(3):php中判断变量为空(0、false、null)的方法
  4. php开发实战分析(4):php调用封装函数包含文件路径自适应不同目录的解决方案($_SERVER[‘DOCUMENT_ROOT‘]与__DIR__魔术常量)
  5. php开发实战分析(5):文件和目录的操作
  6. php开发实战分析(6):配置文件或缓存文件的生成与调用
  7. php开发实战分析(7):mysql类库操作的高级使用
  8. php开发实战分析(8):mysql类库的操作高级使用API开发(字段操作、权限分配、日期格式、跨表查询,数据分表)
  9. php开发实战分析(9):使用实现短地址的分享的解决方案(第三方短链接服务、数据库自增ID转换、自定义短地址生成算法、自增数字短码)

城市区县联动筛选

  • php开发实战分析系列目录
  • 一、构建HTML容器
  • 二、动态城市区县数组
  • 三、数据筛选
    • 1.遍历城市
    • 2.指定城市筛选区县
  • 四、扩展知识

一、构建HTML容器

在这里插入图片描述

   <div class="city"><div class="cityName">选择城市</div><div class="cityItem">{foreach $data_city as $k=>$v}<span {if $v eq $smarty.get.city}class="cityAct"{/if}><a href="?m=Project&a=cluster&act=ShowCluster&city={$v}#lock{$k}">{$v}</a></span>{/foreach}</div></div><div class="city"><div class="cityName">选择区县</div><div class="cityItem">{foreach $data_area as $p}<span {if $p eq $smarty.get.area}class="cityAct"{/if}><a href="?m=Project&a=cluster&act=ShowCluster&city={$cityName}&area={$p}">{$p}</a></span>{/foreach}</div></div>

二、动态城市区县数组

 $district = array(array("city" => "济南市", "areaList" => array("历下区", "市中区", "槐荫区", "天桥区", "历城区", "长清区", "章丘区", "济阳区", "莱芜区", "钢城区", "平阴县", "商河县")),array("city" => "青岛市", "areaList" => array("市南区", "市北区", "黄岛区", "崂山区", "李沧区", "城阳区", "即墨区", "胶州市", "平度市", "莱西市", "青岛高新技术产业开发区")),array("city" => "淄博市", "areaList" => array("淄川区", "张店区", "博山区", "临淄区", "周村区", "桓台县", "高青县", "沂源县")),array("city" => "枣庄市", "areaList" => array("市中区", "薛城区", "峄城区", "台儿庄区", "山亭区", "滕州市")),array("city" => "东营市", "areaList" => array("东营区", "河口区", "垦利县", "利津县", "广饶县")),array("city" => "烟台市", "areaList" => array("芝罘区", "福山区", "牟平区", "莱山区", "蓬莱区", "龙口市", "莱阳市", "莱州市", "招远市", "栖霞市", "海阳市")),array("city" => "潍坊市", "areaList" => array("潍城区", "寒亭区", "坊子区", "奎文区", "临朐县", "昌乐县", "青州市", "诸城市", "寿光市", "安丘市", "高密市", "昌邑市")),array("city" => "济宁市", "areaList" => array("任城区", "兖州区", "微山县", "鱼台县", "金乡县", "嘉祥县", "汶上县", "泗水县", "梁山县", "曲阜市", "邹城市")),array("city" => "泰安市", "areaList" => array("泰山区", "岱岳区", "新泰市", "肥城市", "宁阳县", "东平县")),array("city" => "威海市", "areaList" => array("环翠区", "文登区", "荣成市", "乳山市")),array("city" => "日照市", "areaList" => array("东港区", "岚山区", "五莲县", "莒县")),array("city" => "临沂市", "areaList" => array("兰山区", "罗庄区", "河东区", "郯城县", "兰陵县", "莒南县", "沂水县", "蒙阴县", "平邑县", "费县", "沂南县", "临沭县", "临沂高新技术产业开发区")),array("city" => "德州市", "areaList" => array("德城区", "陵城区", "宁津县", "庆云县", "临邑县", "齐河县", "平原县", "夏津县", "武城县", "乐陵市", "禹城市")),array("city" => "聊城市", "areaList" => array("东昌府区", "阳谷县 ", "莘县", "茌平区", "东阿县", "冠县", "高唐县", "临清市")),array("city" => "滨州市", "areaList" => array("滨城区", "沾化区", "惠民县", "阳信县", "无棣县", "博兴县", "邹平市")),array("city" => "菏泽市", "areaList" => array("牡丹区", "定陶区", "曹县", "单县", "成武县", "巨野县", "郓城县", "鄄城县", "东明县", "菏泽经济技术开发区", "菏泽高新技术产业开发区")));$citys = filterArrayByCity($district);$cityName = get_param('city');if ($cityName == "") {$cityName = "济南市";}$areas = filterArrayByKey($district, 'city', $cityName);

三、数据筛选

1.遍历城市

function filterArrayByCity($array)
{$result = array();foreach ($array as $v) {$result[] = $v["city"];}return $result;
}

2.指定城市筛选区县

若要筛选数组中指定键值的字段,并输出对应字段的值,可以使用循环遍历数组,根据键值进行筛选和提取。

//筛选数组
function filterArrayByKey($array, $key, $value)
{$result = array();foreach ($array as $item) {if (isset($item[$key]) && $item[$key] == $value) {$result[] = $item["areaList"];}}return $result[0];
}

在这里插入图片描述

四、扩展知识

城市区县联动筛选常用于根据用户选择的城市,动态加载对应的区县列表供用户选择。实现这一功能需要使用前端的JavaScript实现动态交互,并与后端进行数据交互。

以下是一个简单的示例代码,演示了如何使用JavaScript实现城市区县联动筛选:

HTML部分:

<!-- 城市下拉列表 -->
<select id="citySelect" onchange="loadCounties()"><option value="">请选择城市</option><option value="beijing">北京</option><option value="shanghai">上海</option><!-- 其他城市选项 -->
</select><!-- 区县下拉列表 -->
<select id="countySelect"><option value="">请选择区县</option>
</select>

JavaScript部分:

function loadCounties() {var citySelect = document.getElementById("citySelect");var countySelect = document.getElementById("countySelect");var selectedCity = citySelect.value;// 清空区县下拉列表countySelect.innerHTML = '<option value="">请选择区县</option>';// 根据选择的城市加载对应的区县列表if (selectedCity === "beijing") {loadBeijingCounties();} else if (selectedCity === "shanghai") {loadShanghaiCounties();}// 根据其他城市加载对应的区县列表
}function loadBeijingCounties() {// 向后端发送异步请求,获取北京市的区县列表// 在回调函数中处理返回的数据,动态生成区县选项,添加到countySelect中// 示例中使用静态数据作为示范var counties = ["东城区", "西城区", "朝阳区", "海淀区", "丰台区"];for (var i = 0; i < counties.length; i++) {var option = document.createElement("option");option.text = counties[i];option.value = counties[i];countySelect.add(option);}
}function loadShanghaiCounties() {// 向后端发送异步请求,获取上海市的区县列表// 在回调函数中处理返回的数据,动态生成区县选项,添加到countySelect中// 示例中使用静态数据作为示范var counties = ["黄浦区", "徐汇区", "静安区", "长宁区", "普陀区"];for (var i = 0; i < counties.length; i++) {var option = document.createElement("option");option.text = counties[i];option.value = counties[i];countySelect.add(option);}
}

上述示例代码通过监听城市下拉列表的onchange事件,当用户选择城市时,会调用loadCounties()函数。根据选择的城市,动态加载对应的区县列表。

其中loadCounties()函数根据选择的城市调用相应的函数来加载区县列表。在示例中,使用了静态数据来作为示范,实际应用中需要通过向后端发送异步请求来获取真实的区县数据,并在回调函数中进行处理。


@漏刻有时

这篇关于php开发实战分析(10):城市区县联动筛选的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/262370

相关文章

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

最长公共子序列问题的深度分析与Java实现方式

《最长公共子序列问题的深度分析与Java实现方式》本文详细介绍了最长公共子序列(LCS)问题,包括其概念、暴力解法、动态规划解法,并提供了Java代码实现,暴力解法虽然简单,但在大数据处理中效率较低,... 目录最长公共子序列问题概述问题理解与示例分析暴力解法思路与示例代码动态规划解法DP 表的构建与意义动

在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程

《在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程》本文介绍了在Java中使用ModelMapper库简化Shapefile属性转JavaBean的过程,对比... 目录前言一、原始的处理办法1、使用Set方法来转换2、使用构造方法转换二、基于ModelMapper

Java实战之自助进行多张图片合成拼接

《Java实战之自助进行多张图片合成拼接》在当今数字化时代,图像处理技术在各个领域都发挥着至关重要的作用,本文为大家详细介绍了如何使用Java实现多张图片合成拼接,需要的可以了解下... 目录前言一、图片合成需求描述二、图片合成设计与实现1、编程语言2、基础数据准备3、图片合成流程4、图片合成实现三、总结前

基于Python开发PPTX压缩工具

《基于Python开发PPTX压缩工具》在日常办公中,PPT文件往往因为图片过大而导致文件体积过大,不便于传输和存储,所以本文将使用Python开发一个PPTX压缩工具,需要的可以了解下... 目录引言全部代码环境准备代码结构代码实现运行结果引言在日常办公中,PPT文件往往因为图片过大而导致文件体积过大,

C#使用DeepSeek API实现自然语言处理,文本分类和情感分析

《C#使用DeepSeekAPI实现自然语言处理,文本分类和情感分析》在C#中使用DeepSeekAPI可以实现多种功能,例如自然语言处理、文本分类、情感分析等,本文主要为大家介绍了具体实现步骤,... 目录准备工作文本生成文本分类问答系统代码生成翻译功能文本摘要文本校对图像描述生成总结在C#中使用Deep

nginx-rtmp-module构建流媒体直播服务器实战指南

《nginx-rtmp-module构建流媒体直播服务器实战指南》本文主要介绍了nginx-rtmp-module构建流媒体直播服务器实战指南,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. RTMP协议介绍与应用RTMP协议的原理RTMP协议的应用RTMP与现代流媒体技术的关系2

使用DeepSeek API 结合VSCode提升开发效率

《使用DeepSeekAPI结合VSCode提升开发效率》:本文主要介绍DeepSeekAPI与VisualStudioCode(VSCode)结合使用,以提升软件开发效率,具有一定的参考价值... 目录引言准备工作安装必要的 VSCode 扩展配置 DeepSeek API1. 创建 API 请求文件2.