如何实现省市关联的下拉列表

前言:在某些电商网站或者APP中,通常填写地址时,会有这样的功能:当我们选择的省份是“山东”时,则城市的下拉列表里所展示的便是山东的城市,当选择的省份是“山西”时,城市的下拉列表所展示的便是山西的城市,今天,我们就来看看,这样的功能通过java是如何实现的?

先来看看运行效果:

这是一个简单的案例,如果还有别的需求,可以自行扩展。

接下来看看怎么实现?

01

Jsp页面

首先,看运行效果,可得需要三个下拉列表,第一个是省份,第二个是城市,第三个则是景点,三个下拉列表的代码如下:

省份:<select id="sheng"><option value="请选择">请选择</option><option value="山东">山东</option><option value="山西">山西</option></select>城市:<select id="shi"></select>景点:<select id="jing"></select>

代码解析:先在省份的下拉列表中初始化了两个省份,山东和山西(此处只举这两个省,别的可以下来自行补充),由于我们并不知道用户会选择哪个省份,所以姑且让其空着,待会儿动态的添加,景点也是一样的道理。

02

Ajax关键代码

当然,该功能使用js也可以实现,只是今天正好看到了ajax,所以就用ajax结合jquery来实现。下面是关键代码:

$("#sheng").change(function(){//获取当前选中的省份var sheng = $("#sheng").val();$.getJSON("AjaxServlet","tag=jsonTest&&county="+sheng,function(data){$("#shi").html("<option>请选择</option>");for(var i in data){$("#shi").append("<option value='"+data[i]+"'>"+data[i]+"</option>");}});});

当改变省份的下拉列表时,执行后面的操作,初始化城市下拉列表。

public void jsonTest(HttpServletRequest request,HttpServletResponse response) throws IOException{PrintWriter out = response.getWriter();String county = request.getParameter("county");List<String> list = new ArrayList<String>();if(county.equals("山东")){list.add("济南");list.add("德州");list.add("齐河");list.add("日照");list.add("烟台");list.add("威海");list.add("青岛");list.add("聊城");}else if(county.equals("山西")){list.add("吕梁");list.add("太原");list.add("大同");list.add("榆次");list.add("晋城");list.add("临汾");list.add("汾阳");list.add("柳林");}String jsonStr = JSON.toJSONString(list);out.print(jsonStr);}

代码解析:先获取到用户选择的省份,然后通过ajax提交到Servlet中,在Servlet中构建该省份的城市集合,最后转换成json格式的收据传回json页面中,在ajax的回调函数中,将json数据解析添加至城市的下拉列表中。

03

Servlet中的关键代码

根据城市获取景点也是同样的原理,jsp中的关键代码如下:

//当改变城市的下拉列表时$("#shi").change(function(){//获取当前选中的是哪个城市var city = $("#add").val();$.getJSON("AjaxServlet","tag=city&&city="+city,function(data){$("#jing").html("<option>请选择</option>");for(var i in data){$("#jing").append("<option>"+data[i]+"</option>");}});});

Servlet中的关键代码如下:

//获取景点public void getJingDian(HttpServletRequest request,HttpServletResponse response) throws IOException{PrintWriter out = response.getWriter();//获取城市String city = request.getParameter("city");Map<String, String> map = new HashMap<String, String>();if(city.equals("济南")){map.put("quan","大明湖");map.put("qian","千佛山");map.put("jing","省博物馆");}else if(city.equals("德州")){map.put("pa","德州扒鸡");map.put("pu","德州扑克");}String jsonObject = JSON.toJSONString(map);System.out.println(jsonObject);out.print(jsonObject);}

往期精彩

PPT大赛一等奖颁奖

2020-12-08

PPT大赛二等奖颁奖

2020-12-08

PPT大赛三等奖颁奖

2020-12-08

今天你们表现的真棒!!!

2020-12-07

学生一天的生活状态缩影

2020-12-06

我们漫长的人生旅途中,态度永远决定一切!!!

2020-12-05

让优秀成为一种习惯!

2020-12-04

点分享

点点赞

点在看

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

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

相关文章

什么样的事才是有意义的

有时候就在想&#xff0c;真正什么样的事才算有意义呢&#xff1f;

在Azure Container Service创建Kubernetes(k8s)群集运行ASP.NET Core跨平台应用程序

引子 在此前的一篇文章中&#xff0c;我介绍了如何在本地docker环境中运行ASP.NET Core跨平台应用程序&#xff0c;看起来非常不错&#xff0c;不是吗&#xff1f;那么&#xff0c;如果我们希望真正在实际的生产环境去部署和运行这个应用程序&#xff0c;应该怎么做呢&#xf…

这也许是你不曾留意过的 Mybatis 细节

转载自 这也许是你不曾留意过的 Mybatis 细节 Mybatis 可以说是 Java 后端的必备技能&#xff0c;可能你和我一样经常使用到它。但有时 cv 多了&#xff0c;会忘记了一些细节处理&#xff0c;比如为什么要加上这个注解&#xff1f;它的作用是什么等等。 这篇文章是我以前写的…

Nacos整合Ribbon实现客户端负载均衡

启动类去掉RibbonClient注解 10 50 100 1 权重优先调用 注意:启动类加RibbonClient注解 2 集群优先调用 3 元数据基于版本优先调用

ssl1344-Knights【最大独立集,最大匹配,图论】

正题 大意 求在一个扣掉m个格子的n*n的棋盘能放置的最多的马。 解题思路 求最大独立集就好了&#xff0c;最大独立集点数-最大匹配数。最重要的是如何建图。定义一个数组point[i][j]表示点的编号。但是如果这样的话就会O(n4)O(n4)就会超时。现在我们把棋盘从左到右后从上到…

小课堂?小视频?小商店?

今天&#xff0c;没有什么特别内容可更新&#xff0c;就来随便聊聊吧。01雄雄的小课堂这是一个公众号&#xff0c;内容主要有两大类。一类是以分享编程技术为主&#xff0c;一方面是为了提升自己&#xff0c;另一方面也是为了帮助别人&#xff0c;希望阅者有益&#xff0c;平时…

Entity Framework Core 软删除与查询过滤器

注意&#xff1a;我使用的是 Entity Framework Core 2.0 (2.0.0-preview2-final)。正式版发布后&#xff0c;功能可能存在变动。 继续探索Entity Framework Core 2.0&#xff0c;今天我将探讨如何轻松使用软删除&#xff08;或逻辑删除&#xff09;。我的意思是以透明的方式实…

相比学习好的学生,老师最喜欢努力认真学习的学生

相比学习好的学生&#xff0c;老师还是更喜欢努力学习的学生。好多人有这样的错觉&#xff0c;谁学习好&#xff0c;老师就喜欢谁&#xff0c;谁就是老师面前的大红人&#xff0c;可能有的老师是这样的吧&#xff0c;但是&#xff0c;对于我来说&#xff0c;相比那些学习好的学…

Postgresql快速写入\/读取大量数据(.net)

环境及测试 使用.net驱动npgsql连接post数据库。配置&#xff1a;win10 x64, i5-4590, 16G DDR3, SSD 850EVO. postgresql 9.6.3&#xff0c;数据库与数据都安装在SSD上&#xff0c;默认配置&#xff0c;无扩展。 CREATE TABLE public.mesh (x integer NOT NULL,y integer N…

mybatis更新Blob类型字段要用updateByPrimaryKeyWithBLOBs

转载自 mybatis更新Blob类型字段要用updateByPrimaryKeyWithBLOBs 不会报错也不会更新desc 业务desc数据库类型为Blob 查看源码 解决方案:

Ajax实现动态及时刷新表格数据

大家好&#xff0c;我是雄雄&#xff0c;今天分享的技术很简单&#xff0c;即ajax结合jdbc动态实现及时刷新表单数据。前言&#xff1a;相信大家在网上冲浪的时候&#xff0c;肯定会发现这样的场景&#xff0c;在实现某个查询功能时&#xff0c;下方表格中会显示需要展示的结果…

扩展entity framework core实现默认字符串长度,decimal精度,entity自动注册和配置

文章以efcore 2.0.0-preview2.测试验证通过。其他版本不保证使用&#xff0c;但是思路不会差太远。源代码,报道越短&#xff0c;事情越严重&#xff01;文章越短&#xff0c;内容越精悍&#xff01; 目标&#xff1a;1.实现entity的自动发现和mapper设置.2.默认字符串长度&…

上机不会做?在讲台上做做试试!

上周四班上到了sql语句的查询&#xff0c;正好临近周末&#xff0c;于是就在周末的时候布置了几个增删改查的案例让回家做做。今天随便找了几个人上黑板上做&#xff0c;本以为都没有问题了呢&#xff0c;结果做的一塌糊涂……惨&#xff0c;太惨了&#xff01;当时我就在想&am…

ASP.NET Core API 版本控制

几天前&#xff0c;我和我的朋友们使用 ASP.NET Core 开发了一个API &#xff0c;使用的是GET方式&#xff0c;将一些数据返回到客户端 APP。我们在前端进行了分页&#xff0c;意味着我们将所有数据发送给客户端&#xff0c;然后进行一些data.length操作&#xff0c;以获得item…

mybatis环境搭建步骤(含配置文件代码)

1.创建web项目2.将所需要的jar包放在项目内&#xff0c;并且build-path3.创建资源文件夹resources4.在资源文件夹中创建xml文件mybatis-config.xml,文件代码如下&#xff1a;<?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE configurationPUB…

多久没有给家里打过电话了?

你多久没有给家里打过电话了&#xff1f;对于我这种常年在外&#xff0c;且工作地距家直线距离都有数百公里的人来说&#xff0c;回家可是一种极大的奢侈啊。貌似自从在济南上班以来&#xff0c;平均每年也就有空回去两次&#xff0c;第一次一般都是有急事需要赶紧赶回去&#…

Feign数据压缩传输

没使用之前 使用 使用之后