Ajax制作二级联动下拉列表框

1.index.jsp

 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
 2 <html>
 3   <head>
 4     <script type="text/javascript" language="javaScript">
 5       var xmlHttp = false; //全局变量,用于记录XMLHttpRequest对象
 6       function createXMLHttpRequest() {
 7         if(window.ActiveXObject) { //Internet Explorer时,创建XMLHttpRequest对象的方法
 8           try {
 9             xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
10           } catch(e) {
11             try {
12               xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
13                //旧版本的Internet Explorer,创建XMLHttpRequest对象
14             } catch(e) {
15               window.alert("创建XMLHttpRequest对象错误"+e);
16             }
17           }
18         } else if(window.XMLHttpRequest) { //mozilla时,创建XMLHttpRequest对象的方法
19           xmlHttp = new XMLHttpRequest();
20         }
21         if(!(xmlHttp)) { //未成功创建XMLHttpRequest对象
22             window.alert("创建XMLHttpRequest对象异常!");
23         }
24       }
25
26       //下拉列表项改变时的操作
27       function proChange(objVal) {
28         createXMLHttpRequest(); //创建XMLHttpRequest对象
29         document.getElementById("city").length = 1;     //根据ID获取指定元素,并赋值
30         xmlHttp.onreadystatechange = cityList; //指定onreadystatechange处理函数
31         var url = "/ComboTest/servlet/CityServlet?province=" + objVal; //请求的URL地址
32         xmlHttp.open("GET",url,true);
33         xmlHttp.send(null);
34       }
35
36       function cityList() { //onreadystatechange的处理函数
37         if(xmlHttp.readyState==4) {
38           if(xmlHttp.status==200) {
39             parseXML(xmlHttp.responseXML);     //解析服务器返回的XML数据
40           }
41         }
42       }
43
44       //解析xml信息,以添加地市
45       function parseXML(xmlDoc) {
46         var len = xmlDoc.getElementsByTagName("city");
47         //获取XML数据中所有的“city”元素对象集合
48         var _citySel = document.getElementById("city");     //根据ID获取页面中的select元素
49         for(var i=0;i<len.length;i++) { //遍历XML数据并给select元素添加选项
50           var opt = document.createElement("OPTION");     //创建option对象
51           opt.text = xmlDoc.getElementsByTagName("city")[i].firstChild.data;
52           //指定新创建元素的text属性值
53           opt.value = xmlDoc.getElementsByTagName("city")[i].firstChild.data;
54           //指定新创建元素的value属性值
55           _citySel.add(opt); //为select元素添加option
56         }
57       }
58     </script>
59     <title>动态加载组合框</title>
60   </head>
61   <body>
62     <table align="center" border=1 width="320">
63       <tr>
64         <td>省份:</td>
65         <td>
66           <select id="province" onchange="proChange(this.value);" style="width:85">
67             <option value="gd">广东</option>
68             <option value="gx">广西</option>
69             <option value="hn">湖南</option>
70             <option value="hb">湖北</option>
71             <option value="ah">安徽</option>
72           </select>
73         </td>
74       </tr>
75       <tr>
76         <td>地市:</td>
77         <td>
78           <select id="city" style="width:85">
79             <option value="">--请选择--</option>
80           </select>
81         </td>
82       </tr>
83     </table>
84   </body>
85 </html>

2.CityServlet.java

 1 public class CityServlet extends HttpServlet {
 2     private static final String CONTENT_TYPE = "text/xml; charset=UTF-8";
 3 //设置返回响应的ContentType
 4     /**
 5      *当前Servlet对象构造方法
 6      */
 7     public CityServlet() {
 8         super();
 9     }
10     /**
11      * 当前Servlet销毁时的操作。<br>
12      */
13     public void destroy() {
14         super.destroy();
15     }
16     /**
17      * 当前Servlet的doGet方法。<br>
18      *
19      * 当客户端表单的“method”类型为“get”时,调用此方法
20      *
21      * @param request客户端请求对象
22      * @param response 服务器响应对象
23      * @throws ServletException 发生ServeltException时抛出
24      * @throws IOException 发生IOException时抛出
25      */
26     public void doGet(HttpServletRequest request, HttpServletResponse response)
27             throws ServletException, IOException {
28         response.setContentType(CONTENT_TYPE); //设置服务器响应类型
29         String province =request.getParameter("province");
30         StringBuffer city = new StringBuffer("<citys>"); //记录返回XML串的对象
31         List list = cityInit(); //获取城市列表
32         if("gx".equals(province)) {
33             for(int i=0;i<list.size();i++) {
34                 city.append("<city>"+list.get(i)+"</city>");
35             }
36         }
37         city.append("</citys>");
38         PrintWriter out = response.getWriter();
39         out.print(city.toString());
40         out.flush(); //输出流刷新
41         out.close(); //关闭输出流
42     }
43
44     /*
45      * 初始化城市
46      */
47     public List<String> cityInit() {
48         List<String> cityList = new ArrayList<String>();
49      //添加城市列表
50         cityList.add("南宁");
51         cityList.add("桂林");
52         cityList.add("北海");
53         cityList.add("河池");
54         cityList.add("梧州");
55         cityList.add("玉林");
56     return cityList;
57 }
58
59     /**
60      *当前Servelt的初始化方法. <br>
61      *
62      * @throws ServletException发生ServletExceptio时抛出
63      */
64     public void init() throws ServletException {
65     }
66 }

3.web.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app version="2.5"
 3     xmlns="http://java.sun.com/xml/ns/javaee"
 4     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 5     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
 6     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 7 <servlet>
 8     <description>This is the description of my J2EE component</description>
 9     <display-name>This is the display name of my J2EE component</display-name>
10     <servlet-name>CityServlet</servlet-name>
11     <servlet-class>wen.CityServlet</servlet-class>
12   </servlet>
13   <servlet-mapping>
14     <servlet-name>CityServlet</servlet-name>
15     <url-pattern>/servlet/CityServlet</url-pattern>
16   </servlet-mapping>
17   <welcome-file-list>
18     <welcome-file>index.jsp</welcome-file>
19   </welcome-file-list>
20 </web-app>

时间: 2024-07-31 13:20:58

Ajax制作二级联动下拉列表框的相关文章

JS制作二级联动

JS制作二级联动 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="

PHP+ajax实现二级联动

? <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" c

ajax实现二级联动

用js实现简单的ajax二级联动(如上图) HTML代码: 1 省份:<select id="province" onchange="getCity();" > 2 <option>请选择--</option> 3 </select> 4 城市:<select id="city"> 5 <option>请选择--</option> 6 </select>

Spring MVC中Ajax实现二级联动

今天写项目遇到了二级联动,期间遇到点问题,写个博客记录一下. 后台Controller: @RequestMapping("/faultType") @ResponseBody public Map<String,Object> faultType(int id,HttpServletRequest request)throws IOException { String ReturnMessage = ""; //获取所有子类故障类型 List<F

黑马day17 ajax&amp;实现二级联动

手工方式实现二级联动的效果: jsp页面: <%@ page language="java" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>级联菜单</title> <script type="

ajax实现二级联动(服务器端返回json数据)

实现效果为上图 HTML 代码: 1 省份:<select id="province" onchange="getCity();"> 2 <option >请选择--</option> 3 </select> 4 城市:<select id="city"> 5 <option>请选择--</option> 6 </select> xmlHttp.js

JQuery+Ajax制作省市联动

1 $(document).ready(function () { 2 $("#Province").append("<option value=''>" + "--请选择--" + "</option>"); 3 $("#City").append("<option value=''>" + "--请选择--" + "&

Ajax实现的城市二级联动二

上一篇联动一种只是城市用ajax请求获取并渲染,这里将省份也用ajax请求并渲染 1.HTML <select id="province"> <option>请选择</option> </select> <select id="city"> <option>请选择</option> </select> 2.JS /* * 省份信息和城市信息全部来源于服务器端 * * 第一

Query实例的ajax应用之二级联动的后台是采用php来做的

jQuery实例的ajax应用之二级联动的后台是采用php来做的,前台通过jquery的ajax方式实现二级联动数据库表设计 csj_trade id int(11) auto_increment          tname varchar(100)tradeType int(11) 其中,id为主键自动索引,tname为行业名称,tradeType为一个标识,为0时,表示这条数据是大类:不为0,而是某个数字的时候,则这个数字表示其父级的id.(1)主页面 <script type="t