一 province.jsp
%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> html> head> script type="text/javascript" language="javaScript"> var xmlHttp = false; //全局變量,用于記錄XMLHttpRequest對象 function createXMLHttpRequest() { if(window.ActiveXObject) { //Internet Explorer時,創(chuàng)建XMLHttpRequest對象的方法 try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); //舊版本的Internet Explorer,創(chuàng)建XMLHttpRequest對象 } catch(e) { window.alert("創(chuàng)建XMLHttpRequest對象錯誤"+e); } } } else if(window.XMLHttpRequest) { //mozilla時,創(chuàng)建XMLHttpRequest對象的方法 xmlHttp = new XMLHttpRequest(); } if(!(xmlHttp)) { //未成功創(chuàng)建XMLHttpRequest對象 window.alert("創(chuàng)建XMLHttpRequest對象異常!"); } } //下拉列表項改變時的操作 function proChange(objVal) { createXMLHttpRequest(); //創(chuàng)建XMLHttpRequest對象 document.getElementById("city").length = 1; //根據(jù)ID獲取指定元素,并賦值 xmlHttp.onreadystatechange = cityList; //指定onreadystatechange處理函數(shù) var url="CityByXMLServlet?province="+objVal; //請求的URL地址 xmlHttp.open("POST",url,true); xmlHttp.send(null); } function cityList() { //onreadystatechange的處理函數(shù) if(xmlHttp.readyState==4) { if(xmlHttp.status==200) { parseXML(xmlHttp.responseXML); //解析服務(wù)器返回的XML數(shù)據(jù) } } } //解析xml信息,以添加地市 function parseXML(xmlDoc) { var len = xmlDoc.getElementsByTagName("city"); //獲取XML數(shù)據(jù)中所有的“city”元素對象集合 var _citySel = document.getElementById("city"); //根據(jù)ID獲取頁面中的select元素 for(var i=0;ilen.length;i++) { //遍歷XML數(shù)據(jù)并給select元素添加選項 var opt = document.createElement("OPTION"); //創(chuàng)建option對象 opt.text = xmlDoc.getElementsByTagName("city")[i].firstChild.data; //指定新創(chuàng)建元素的text屬性值 opt.value = xmlDoc.getElementsByTagName("city")[i].firstChild.data; //指定新創(chuàng)建元素的value屬性值 _citySel.add(opt); //為select元素添加option } } /script> title>動態(tài)加載組合框/title> /head> body> table align="center" border=1 width="320"> tr> td>省份:/td> td> select id="province" onChange="proChange(this.value);" style="width:85"> option value="gd">廣東/option> option value="gx">廣西/option> option value="hn">湖南/option> option value="hb">湖北/option> option value="ah">安徽/option> /select> /td> /tr> tr> td>城市:/td> td> select id="city" style="width:85"> option value="">--請選擇--/option> /select> /td> /tr> /table> /body> /html>
二、CityByXMLServlet.java
package servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.*; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class CityByXMLServlet */ @WebServlet("/CityByXMLServlet") public class CityByXMLServlet extends HttpServlet { private static final long serialVersionUID = 1L; private static final String CONTENT_TYPE = "text/xml; charset=UTF-8"; /** * @see HttpServlet#HttpServlet() */ public CityByXMLServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(CONTENT_TYPE); //設(shè)置服務(wù)器響應(yīng)類型 String province =request.getParameter("province"); StringBuffer city = new StringBuffer("citys>"); //記錄返回XML串的對象 if("gx".equals(province)){ List list=cityInit(); //獲取城市列表 for(int i=0;ilist.size();i++){ city.append("city>"+list.get(i)+"/city>"); } }else if("hn".equals(province)){ List list = cityInit1(); //獲取城市列表 for(int j=0;jlist.size();j++){ city.append("city>"+list.get(j)+"/city>"); } }else if("hb".equals(province)){ List list = cityInit2(); //獲取城市列表 for(int j=0;jlist.size();j++){ city.append("city>"+list.get(j)+"/city>"); } } city.append("/citys>"); PrintWriter out = response.getWriter(); out.println(city.toString()); out.flush(); //輸出流刷新 out.close(); //關(guān)閉輸出流 } /* * 初始化城市 */ public ListString> cityInit2() { ListString> cityList = new ArrayListString>(); //添加城市列表 cityList.add("武漢"); cityList.add("襄陽"); cityList.add("黃岡"); cityList.add("荊門"); cityList.add("十堰"); cityList.add("黃石"); return cityList; } public ListString> cityInit(){ ListString> cityList = new ArrayListString>(); //添加城市列表 cityList.add("南寧"); cityList.add("桂林"); cityList.add("北海"); cityList.add("河池"); cityList.add("梧州"); cityList.add("玉林"); return cityList; } public ListString> cityInit1() { ListString> cityList = new ArrayListString>(); //添加城市列表 cityList.add("長沙"); cityList.add("湘潭"); cityList.add("岳陽"); cityList.add("常德"); cityList.add("衡陽"); cityList.add("邵陽"); return cityList; } /** *當(dāng)前Servelt的初始化方法. br> * * @throws ServletException發(fā)生ServletExceptio時拋出 */ public void init() throws ServletException { } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
三 web.xml
?xml version="1.0" encoding="UTF-8"?> web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd http://xmlns.jcp.org/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.4"> servlet> servlet-name>CityByXMLServlet/servlet-name> servlet-class>servlet.CityByXMLServlet/servlet-class>!--類的位置 --> /servlet> servlet-mapping> servlet-name>CityByXMLServlet/servlet-name>!--你創(chuàng)建的類名 --> url-pattern>/CityByXMLServlet/url-pattern> /servlet-mapping>
總結(jié)
以上所述是小編給大家介紹的Ajax實現(xiàn)動態(tài)加載組合框的實例代碼,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復(fù)大家的!
標簽:本溪 四川 玉樹 內(nèi)江 益陽 遼寧 銅川 營口
巨人網(wǎng)絡(luò)通訊聲明:本文標題《Ajax實現(xiàn)動態(tài)加載組合框的實例代碼》,本文關(guān)鍵詞 Ajax,實現(xiàn),動態(tài),加載,組合,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。