<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    我思故我強

    Ajax實現二級聯動下拉框

    這個一個ajax的經典示例,也是ajax的長處所在。不多說了,下面來看代碼。

    項目結構圖:
    option1.jpg

    index.jsp:
    <%@?page?language="java"?contentType="text/html;?charset=utf-8"%>

    <html>
    ??
    <head>
    ????
    <title>My?JSP?'index.jsp'?starting?page</title>
    ????
    <meta?http-equiv="Content-Type"?content="text/html;?charset=utf-8">
    ????
    <SCRIPT?type="text/javascript">
    ????????var?req;
    ????????window.onload
    =function(){
    ????????}
    ????????
    ????????function?Change_Select()
    ????????{
    ????????????var?zhi
    =document.getElementById('hero').value;
    ????????????var?url
    ="select?id="+escape(zhi);
    ????????????
    if(window.XMLHttpRequest)
    ????????????{
    ????????????????req
    =new?XMLHttpRequest();
    ????????????}
    else?if(window.ActiveXObject)
    ????????????{
    ????????????????req
    =new?ActiveXObject("Microsoft.XMLHTTP");
    ????????????}
    ????????????
    ????????????
    if(req)
    ????????????{
    ????????????????req.open(
    "GET",url,true);
    ????????????????req.onreadystatechange
    =callback;
    ????????????????req.send(
    null);
    ????????????}
    ????????}
    ????????
    ????????function?callback()
    ????????{
    ????????????
    if(req.readyState?==?4)
    ????????????{
    ????????????????
    if(req.status?==?200)
    ????????????????{
    ????????????????????parseMessage();
    ????????????????}
    else{
    ????????????????????alert(
    "Not?able?to?retrieve?description"+req.statusText);
    ????????????????}
    ????????????}
    ????????}
    ????????
    ????????function?parseMessage()
    ????????{
    ????????????var?xmlDoc
    =req.responseXML.documentElement;
    ????????????var?xSel
    =xmlDoc.getElementsByTagName('select');
    ????????????var?select_root
    =document.getElementById('skill');
    ????????????select_root.options.length
    =0;
    ????????????
    ????????????
    for(var?i=0;i<xSel.length;i++)
    ????????????{
    ????????????????var?xValue
    =xSel[i].childNodes[0].firstChild.nodeValue;
    ????????????????var?xText
    =xSel[i].childNodes[1].firstChild.nodeValue;
    ????????????????var?option
    =new?Option(xText,xValue);
    ????????????????
    try{
    ????????????????????select_root.add(option);
    ????????????????}
    catch(e){
    ????????????????}
    ????????????}
    ????????????
    ????????????
    ????????}
    ????
    </SCRIPT>
    ??
    </head>
    ??
    ??
    <body>
    ????
    <div?align="center">
    ????????
    <form?name="form1"?method="post"?action="">
    ????????????
    <TABLE?width="70%"?boder="0"?cellspacing="0">
    ????????????????
    <TR>
    ????????????????????
    <TD?align="center">Double?Select?Box</TD>
    ????????????????
    </TR>
    ????????????????
    <TR>
    ????????????????????
    <TD>
    ????????????????????????
    <SELECT?name="hero"?id="hero"?onChange="Change_Select()">
    ????????????????????????????
    <OPTION?value="0">Unbounded</OPTION>
    ????????????????????????????
    <OPTION?value="1">D.K.</OPTION>
    ????????????????????????????
    <OPTION?value="2">NEC.</OPTION>
    ????????????????????????????
    <OPTION?value="3">BOSS</OPTION>
    ????????????????????????
    </SELECT>
    ????????????????????????
    <SELECT?name="skill"?id="skill">
    ????????????????????????????
    <OPTION?value="0">Unbounded</OPTION>
    ????????????????????????
    </SELECT>
    ????????????????????
    </TD>
    ????????????????
    </TR>
    ????????????????
    <TR><td>&nbsp;</td></TR>
    ????????????
    </TABLE>
    ????????
    </form>
    ????
    </div>
    ??
    </body>
    </html>

    SelectServlet.java:
    package?com;

    import?java.io.IOException;
    import?java.io.PrintWriter;

    import?javax.servlet.ServletException;
    import?javax.servlet.http.HttpServlet;
    import?javax.servlet.http.HttpServletRequest;
    import?javax.servlet.http.HttpServletResponse;

    public?class?SelectServlet?extends?HttpServlet?{

    ????
    /**
    ?????*?Constructor?of?the?object.
    ?????
    */
    ????
    public?SelectServlet()?{
    ????????
    super();
    ????}

    ????
    /**
    ?????*?Destruction?of?the?servlet.?<br>
    ?????
    */
    ????
    public?void?destroy()?{
    ????????
    super.destroy();?//?Just?puts?"destroy"?string?in?log
    ????????
    //?Put?your?code?here
    ????}

    ????
    /**
    ?????*?The?doGet?method?of?the?servlet.?<br>
    ?????*
    ?????*?This?method?is?called?when?a?form?has?its?tag?value?method?equals?to?get.
    ?????*?
    ?????*?
    @param?request?the?request?send?by?the?client?to?the?server
    ?????*?
    @param?response?the?response?send?by?the?server?to?the?client
    ?????*?
    @throws?ServletException?if?an?error?occurred
    ?????*?
    @throws?IOException?if?an?error?occurred
    ?????
    */
    ????
    public?void?doGet(HttpServletRequest?request,?HttpServletResponse?response)
    ????????????
    throws?ServletException,?IOException?{
    ????????response.setContentType(
    "text/xml");
    ????????response.setHeader(
    "Cache-Control","no-cache");
    ????????
    ????????String?targetId
    =request.getParameter("id").toString();
    ????????String?xml_start
    ="<selects>";
    ????????String?xml_end
    ="</selects>";
    ????????String?xml
    ="";
    ????????
    if(targetId.equalsIgnoreCase("0")){
    ????????????xml
    ="<select><value>0</value><text>Unbounded</text></select>";
    ????????}
    else?if(targetId.equalsIgnoreCase("1")){
    ????????????xml
    ="<select><value>1</value><text>Mana?Burn</text></select>";
    ????????????xml?
    +="<select><value>2</value><text>Death?Coil</text></select>";
    ????????????xml?
    +="<select><value>3</value><text>Unholy?Aura</text></select>";
    ????????????xml?
    +="<select><value>4</value><text>Unholy?Fire</text></select>";
    ????????}
    else?if(targetId.equalsIgnoreCase("2")){
    ????????????xml
    ="<select><value>1</value><text>Corprxplode</text></select>";
    ????????????xml?
    +="<select><value>2</value><text>Raise?Dead</text></select>";
    ????????????xml?
    +="<select><value>3</value><text>Brilliance?Aura</text></select>";
    ????????????xml?
    +="<select><value>4</value><text>Aim?Aura</text></select>";
    ????????}
    else{
    ????????????xml
    ="<select><value>1</value><text>Rain?of?Chaos</text></select>";
    ????????????xml?
    +="<select><value>2</value><text>Finger?of?Death</text></select>";
    ????????????xml?
    +="<select><value>3</value><text>Bash</text></select>";
    ????????????xml?
    +="<select><value>4</value><text>Summon?Doom</text></select>";
    ????????}
    ????????String?last_xml
    =xml_start+xml+xml_end;
    ????????response.getWriter().write(last_xml);
    ????}

    ????
    /**
    ?????*?The?doPost?method?of?the?servlet.?<br>
    ?????*
    ?????*?This?method?is?called?when?a?form?has?its?tag?value?method?equals?to?post.
    ?????*?
    ?????*?
    @param?request?the?request?send?by?the?client?to?the?server
    ?????*?
    @param?response?the?response?send?by?the?server?to?the?client
    ?????*?
    @throws?ServletException?if?an?error?occurred
    ?????*?
    @throws?IOException?if?an?error?occurred
    ?????
    */
    ????
    public?void?doPost(HttpServletRequest?request,?HttpServletResponse?response)
    ????????????
    throws?ServletException,?IOException?{

    ????????doGet(request,response);
    ????}

    ????
    /**
    ?????*?Initialization?of?the?servlet.?<br>
    ?????*
    ?????*?
    @throws?ServletException?if?an?error?occure
    ?????
    */
    ????
    public?void?init()?throws?ServletException?{
    ????????
    //?Put?your?code?here
    ????}

    }

    web.xml:
    <?xml?version="1.0"?encoding="UTF-8"?>
    <web-app?version="2.4"?
    ????xmlns
    ="http://java.sun.com/xml/ns/j2ee"?
    ????xmlns:xsi
    ="http://www.w3.org/2001/XMLSchema-instance"?
    ????xsi:schemaLocation
    ="http://java.sun.com/xml/ns/j2ee?
    ????http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    ??<servlet>
    ????
    <servlet-name>SelectServlet</servlet-name>
    ????
    <servlet-class>com.SelectServlet</servlet-class>
    ??
    </servlet>

    ??
    <servlet-mapping>
    ????
    <servlet-name>SelectServlet</servlet-name>
    ????
    <url-pattern>/select</url-pattern>
    ??
    </servlet-mapping>
    ????
    ????
    <welcome-file-list>
    ????????
    <welcome-file>index.jsp</welcome-file>
    ????
    </welcome-file-list>
    </web-app>

    運行結果圖:
    option2.jpg

    posted on 2007-09-20 10:04 李云澤 閱讀(677) 評論(0)  編輯  收藏 所屬分類: Java代碼Ajax

    主站蜘蛛池模板: 国产一级大片免费看| 在线观看特色大片免费视频| 免费va人成视频网站全| 久久水蜜桃亚洲AV无码精品 | 香蕉视频在线观看亚洲| 三年片免费高清版| 国产亚洲人成无码网在线观看| 男女一进一出抽搐免费视频| 亚洲色中文字幕无码AV| 成人爽a毛片免费| 亚洲日本在线观看| 亚洲免费在线视频播放| 亚洲天堂2016| 国产高清视频在线免费观看| 免费大片av手机看片| 亚洲宅男天堂在线观看无病毒| 99久久婷婷免费国产综合精品| 久久91亚洲人成电影网站| 在线日本高清免费不卡| 亚洲一区二区三区在线观看蜜桃| 免费黄色网址入口| 国产成人自产拍免费视频| 亚洲小视频在线观看| 永久免费av无码不卡在线观看| 亚洲国产成人无码AV在线| 亚洲日韩人妻第一页| 免费国产黄网站在线观看可以下载| 亚洲欧洲国产视频| 免费日本黄色网址| 日本不卡免费新一区二区三区| 亚洲影视一区二区| 亚洲人成色77777在线观看大| 久久中文字幕免费视频| 亚洲影院天堂中文av色| 国产亚洲?V无码?V男人的天堂| 四虎国产精品永久免费网址| 亚洲爆乳AAA无码专区| 亚洲国产精品国自产电影| 国产又黄又爽又猛的免费视频播放| 中文字幕不卡免费高清视频| 亚洲码在线中文在线观看|