jquery json ajax三级联动

province_city_area.jsp

 1 <%@ page language="java" pageEncoding="UTF-8"%>
 2 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 3 <html>
 4   <head>
 5       <script type="text/javascript" src="js/jquery-1.8.2.js"></script>
 6   </head>
 7   <body>
 8     <select id="provinceID">
 9         <option>选择省份</option>
10         <option>湖南</option>
11         <option>广东</option>
12         <option>湖北</option>
13     </select>    
14     <hr/>
15     <select id="cityID">
16         <option>选择城市</option>
17     </select>    
18     <hr/>
19     <select id="areaID">
20         <option>选择区域</option>
21     </select>    
22     <script type="text/javascript">
23         //省份-城市
24         $("#provinceID").change(function(){
25             //清空城市下拉框中的内容,除提示信息外
26             $("#cityID option:gt(0)").remove();
27             $("#areaID option:gt(0)").remove();
28             //获取选中的省份
29             var province = $("#provinceID option:selected").html();
30             var url = "${pageContext.request.contextPath}/ProvinceCityAreaJsonServlet?time="+new Date().getTime();
31             var sendData = {"province":province,"method":"provinceToCity"};
32             $.post(url,sendData,function(backData,textStatus,xhr){
33                 //解析字符串
34                 var jsonString = eval("("+backData+")");
35                 var size = jsonString.city.length;
36                 for(var i=0;i<size;i++){
37                     //获取每一个城市
38                     var city = jsonString.city[i];
39                     var $option = $("<option>" + city + "</option>")
40                     $("#cityID").append( $option );    
41                 }
42             });
43         });
44         //城市-区域
45         $("#cityID").change(function(){
46             $("#areaID option:gt(0)").remove();
47             var city = $("#cityID option:selected").html();
48             var url = "${pageContext.request.contextPath}/ProvinceCityAreaJsonServlet?time="+new Date().getTime();
49             var sendData = {"city":city,"method":"cityToArea"};
50             $.post(url,sendData,function(backData,textStatus,xhr){
51                 var jsonString = eval("("+backData+")");
52                 var size = jsonString.area.length;
53                 for(var i=0;i<size;i++){
54                     var area = jsonString.area[i];
55                     var $option = $("<option>" + area + "</option>")
56                     $("#areaID").append( $option );            
57                 }
58             });
59         });
60     </script>
61   </body>
62 </html>

ProvineCityAreaJsonServlet.java

 1 package cn.itcast.web.servlet;
 2 
 3 import java.io.IOException;
 4 import javax.servlet.ServletException;
 5 import javax.servlet.http.HttpServlet;
 6 import javax.servlet.http.HttpServletRequest;
 7 import javax.servlet.http.HttpServletResponse;
 8 
 9 public class ProvinceCityAreaJsonServlet extends HttpServlet {
10     public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
11         request.setCharacterEncoding("UTF-8");
12         String method = request.getParameter("method");
13         if("provinceToCity".equals(method)){
14             this.provinceToCity(request,response);
15         }else if("cityToArea".equals(method)){
16             this.cityToArea(request,response);
17         }
18     }
19     //省份到城市
20     private void provinceToCity(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
21         String province = request.getParameter("province");
22         String javaString = null;
23         if("广东".equals(province)){
24             javaString = "{city:['广州','深圳']}";
25         }else if("湖南".equals(province)){
26             javaString = "{city:['长沙','株洲']}";
27         }else if("湖北".equals(province)){
28             javaString = "{city:['武汉','黄冈']}";
29         }
30         response.setContentType("text/html;charset=UTF-8");
31         response.getWriter().write(javaString);
32     }
33     //城市到区域
34     private void cityToArea(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
35         String city = request.getParameter("city");
36         String javaString = null;
37         if("广州".equals(city)){
38             javaString = "{area:['天河','白云']}";
39         }else if("深圳".equals(city)){
40             javaString = "{area:['南山','宝安']}";
41         }else if("长沙".equals(city)){
42             javaString = "{area:['天心','雨花']}";
43         }else if("株洲".equals(city)){
44             javaString = "{area:['雨湖','麓山']}";
45         }else if("武汉".equals(city)){
46             javaString = "{area:['汉口','武昌']}";
47         }else if("黄冈".equals(city)){
48             javaString = "{area:['红安','黄梅']}";
49         }
50         response.setContentType("text/html;charset=UTF-8");
51         response.getWriter().write(javaString);
52     }
53 }
原文地址:https://www.cnblogs.com/friends-wf/p/3810768.html