javaweb基础----省市县三级联动(jquery+ajax版)

1.需要的jar包:

c3p0-0.9.1.2.jar,   commons-dbutils-1.6.jar,   flexjson-2.1.jar,  mysql-connector-java-5.1.38-bin.jar以及c3p0的xml文件

2.前端展示:

 1 <script type="text/javascript">
 2     //页面加载完之后执行
 3     $(function () {
 4         //初始化省信息,向服务器索要省信息
 5         $.post("province", {"pid":"0"}, function(data) {
 6             //遍历每条数据
 7             $(data).each(function() {
 8                 var name = this.name;
 9                 var id = this.id;
10                 //封装option
11                 var $option = $("<option value='"+id+"'>"+name+"</option>")
12                 //将option封装到s1中
13                 $("#s1").append($option);
14             })
15         })
16         //当省份域发生变化时触发
17         $("#s1").change(function() {
18             //清空市域
19             $("#s2").empty();
20             $("#s2").append($("<option value=''>----请选择市----</option>"))
21             //清空县域
22             $("#s3").empty();
23             $("#s3").append($("<option value=''>----请选择区县----</option>"))
24             //获取已选省的value
25             var $s1_id = $(this).val();
26             //向后台发送请求
27             $.post("province", {'pid':$s1_id}, function(data) {
28                     //遍历每条数据
29                     $(data).each(function() {
30                         var name = this.name;
31                         var id = this.id;
32                         //封装option
33                         var $option = $("<option value='"+id+"'>"+name+"</option>")
34                         //将option封装到s1中
35                         $("#s2").append($option);
36                     })
37             })
38         })
39         //当市域发生变化时触发
40         $("#s2").change(function() {
41             //清空县域
42             $("#s3").empty();
43             $("#s3").append($("<option value=''>----请选择区县----</option>"))
44             //获取已选省的value
45             var $s2_id = $(this).val();
46             //向后台发送请求
47             $.post("province", {'pid':$s2_id}, function(data) {
48                     //遍历每条数据
49                     $(data).each(function() {
50                         var name = this.name;
51                         var id = this.id;
52                         //封装option
53                         var $option = $("<option value='"+id+"'>"+name+"</option>")
54                         //将option封装到s1中
55                         $("#s3").append($option);
56                     })
57             })
58         })
59     })
60 </script>
61 </head>
62 <body>
63     <select id="s1">
64         <option value="">----请选择省----</option>
65     </select>
66     <select id="s2">
67         <option value="">----请选择市----</option>
68     </select>
69     <select id="s3">
70         <option value="">----请选择区县----</option>
71     </select>
72 
73 </body>

3.后台代码

 1     protected void doGet(HttpServletRequest request, HttpServletResponse response)
 2             throws ServletException, IOException {
 3         request.setCharacterEncoding("UTF-8");
 4         response.setCharacterEncoding("UTF-8");
 5         response.setContentType("text/html; charset=UTF-8");
 6         int pid = Integer.parseInt(request.getParameter("pid"));
 7         // int pid = 0;
 8         // 调用service方法查询数据库
 9         ProvinceService ps = new ProvinceServiceImpl();
10         List<Info> infoList = ps.select(pid);
11         // 处理数据
12         JSONSerializer serializer = new JSONSerializer();
13         serializer = serializer.exclude("class", "pid");// 移除不需要的字段
14         String data = serializer.serialize(infoList);
15         // System.out.println(data);
16         // 设置响应格式
17         response.setContentType("application/json;charset=utf-8");
18         // 将数据返回给浏览器
19         response.getWriter().write(data);
20     }
先想再做,不想不做。
原文地址:https://www.cnblogs.com/cjasonvincent/p/8701060.html