Ajax實(shí)現(xiàn)動(dòng)態(tài)加載組合框的實(shí)例代碼
一 province.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
 <html>
  <head>
   <script type="text/javascript" language="javaScript">
    var xmlHttp = false; //全局變量,用于記錄XMLHttpRequest對(duì)象
    function createXMLHttpRequest() {
     if(window.ActiveXObject) { //Internet Explorer時(shí),創(chuàng)建XMLHttpRequest對(duì)象的方法
      try {
      xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
     } catch(e) {
      try {       xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
       //舊版本的Internet Explorer,創(chuàng)建XMLHttpRequest對(duì)象
      } catch(e) {
       window.alert("創(chuàng)建XMLHttpRequest對(duì)象錯(cuò)誤"+e);
      } 
     }
    } else if(window.XMLHttpRequest) { //mozilla時(shí),創(chuàng)建XMLHttpRequest對(duì)象的方法
      xmlHttp = new XMLHttpRequest();
     } 
    if(!(xmlHttp)) { //未成功創(chuàng)建XMLHttpRequest對(duì)象
      window.alert("創(chuàng)建XMLHttpRequest對(duì)象異常!");
    } 
    }
   //下拉列表項(xiàng)改變時(shí)的操作
   function proChange(objVal) {
     createXMLHttpRequest(); //創(chuàng)建XMLHttpRequest對(duì)象
     document.getElementById("city").length = 1;   //根據(jù)ID獲取指定元素,并賦值
     xmlHttp.onreadystatechange = cityList; //指定onreadystatechange處理函數(shù)
     var url="CityByXMLServlet?province="+objVal; //請(qǐng)求的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”元素對(duì)象集合
     var _citySel = document.getElementById("city");   //根據(jù)ID獲取頁(yè)面中的select元素
     for(var i=0;i<len.length;i++) { //遍歷XML數(shù)據(jù)并給select元素添加選項(xiàng)
     var opt = document.createElement("OPTION");   //創(chuàng)建option對(duì)象
     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>動(dòng)態(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="">--請(qǐng)選擇--</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)類(lèi)型
       String province =request.getParameter("province");
       StringBuffer city = new StringBuffer("<citys>"); //記錄返回XML串的對(duì)象
       if("gx".equals(province)){
       List list=cityInit(); //獲取城市列表
        for(int i=0;i<list.size();i++){
           city.append("<city>"+list.get(i)+"</city>");
        }      
       }else if("hn".equals(province)){
       List list = cityInit1(); //獲取城市列表
       for(int j=0;j<list.size();j++){
           city.append("<city>"+list.get(j)+"</city>");
       }
        }else if("hb".equals(province)){
        List list = cityInit2(); //獲取城市列表
        for(int j=0;j<list.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 List<String> cityInit2() {
    List<String> cityList = new ArrayList<String>();
   //添加城市列表
    cityList.add("武漢");
    cityList.add("襄陽(yáng)");
    cityList.add("黃岡");
    cityList.add("荊門(mén)");
    cityList.add("十堰");
    cityList.add("黃石");
    return cityList;
  }
     public List<String> cityInit(){
       List<String> cityList = new ArrayList<String>();
     //添加城市列表
       cityList.add("南寧");
       cityList.add("桂林");
       cityList.add("北海");
       cityList.add("河池");
       cityList.add("梧州");
       cityList.add("玉林");
    return cityList;
   }
    public List<String> cityInit1() {
    List<String> cityList = new ArrayList<String>();
   //添加城市列表
    cityList.add("長(zhǎng)沙");
    cityList.add("湘潭");
    cityList.add("岳陽(yáng)");
    cityList.add("常德");
    cityList.add("衡陽(yáng)");
    cityList.add("邵陽(yáng)");
    return cityList;
  }
    /**
     *當(dāng)前Servelt的初始化方法. <br>
     *
     * @throws ServletException發(fā)生ServletExceptio時(shí)拋出
     */
    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><!--類(lèi)的位置 --> </servlet> <servlet-mapping> <servlet-name>CityByXMLServlet</servlet-name><!--你創(chuàng)建的類(lèi)名 --> <url-pattern>/CityByXMLServlet</url-pattern> </servlet-mapping>
總結(jié)
以上所述是小編給大家介紹的Ajax實(shí)現(xiàn)動(dòng)態(tài)加載組合框的實(shí)例代碼,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!
- AJAX和jQuery動(dòng)態(tài)加載數(shù)據(jù)的實(shí)現(xiàn)方法
 - DataTables+BootStrap組合使用Ajax來(lái)獲取數(shù)據(jù)并且動(dòng)態(tài)加載dom的方法(排序,過(guò)濾,分頁(yè)等)
 - 使用PHP+AJAX讓W(xué)ordPress動(dòng)態(tài)加載文章的教程
 - jQuery結(jié)合ajax實(shí)現(xiàn)動(dòng)態(tài)加載文本內(nèi)容
 - php+ajax實(shí)現(xiàn)無(wú)刷新動(dòng)態(tài)加載數(shù)據(jù)技術(shù)
 - 使用ajax+jqtransform實(shí)現(xiàn)動(dòng)態(tài)加載select
 - Ajax動(dòng)態(tài)加載數(shù)據(jù)庫(kù)示例
 - 用ajax動(dòng)態(tài)加載需要的js文件
 - 利用Dojo和JSON建立無(wú)限級(jí)AJAX動(dòng)態(tài)加載的功能模塊樹(shù)
 
相關(guān)文章
 Ajax刪除數(shù)據(jù)與查看數(shù)據(jù)操作
這篇文章主要介紹了Ajax刪除數(shù)據(jù)與查看數(shù)據(jù)操作,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03
 asp.net 全部選中與取消操作,選中后的刪除(ajax)實(shí)現(xiàn)無(wú)刷新效果
現(xiàn)在我們?cè)诰幊痰臅r(shí)刻總是要利用一些最新的技術(shù)去解決問(wèn)題。。。。下面是我用ajax與jequery結(jié)合在一起使用的一個(gè)實(shí)例。希能給一起學(xué)習(xí)的朋友們帶來(lái)幫助。2009-06-06
 Ajax 程序開(kāi)發(fā)中常見(jiàn)問(wèn)題
Ajax 程序開(kāi)發(fā)中常見(jiàn)問(wèn)題,利用大家快點(diǎn)的找到問(wèn)題所在,快速解決問(wèn)題。2009-08-08
 Ajax結(jié)合php實(shí)現(xiàn)二級(jí)聯(lián)動(dòng)
這篇文章主要為大家詳細(xì)介紹了Ajax結(jié)合php實(shí)現(xiàn)二級(jí)聯(lián)動(dòng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-08-08
 Ajax實(shí)現(xiàn)圖片上傳并預(yù)覽功能
這篇文章主要介紹了Ajax實(shí)現(xiàn)圖片上傳并預(yù)覽,需要的朋友可以參考下2018-06-06
 基于AJAX的分頁(yè)類(lèi)實(shí)現(xiàn)代碼
隨著AJAX在互聯(lián)網(wǎng)上的廣泛運(yùn)用,公司也在越來(lái)越多的項(xiàng)目里涉及到了AJAX,最近一段時(shí)間空閑,于是就用JS寫(xiě)了一個(gè)基于AJAX的異步分頁(yè)類(lèi)。先不多說(shuō),還是先將源碼貼出,再進(jìn)行說(shuō)明~~~2009-09-09
 AJAX和WebService實(shí)現(xiàn)省市縣三級(jí)聯(lián)動(dòng)具體代碼
AJAX和WebService實(shí)現(xiàn)省市縣三級(jí)聯(lián)動(dòng)效果,在瀏覽網(wǎng)頁(yè)的時(shí)候經(jīng)常會(huì)遇到過(guò),下面與大家分享下具體的實(shí)現(xiàn)步驟2013-05-05

