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

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

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

    Ajax&&JSP二級聯(lián)動

    Posted on 2008-09-01 00:18 橡皮人 閱讀(460) 評論(0)  編輯  收藏
      一個簡單的純手工的Ajax&&JSP二級聯(lián)動。
    <script type="text/javascript">
        
    var req;
        window.onload
    =function()
        {
    //頁面加載時的函數(shù)
        }
        
        
    function Change_Select(){//當?shù)谝粋€下拉框的選項發(fā)生改變時調(diào)用該函數(shù)
          var province = document.getElementById('fatherType').value;
          
    var url = "/nicholas/select?fatherType="+province;
          
    if(window.XMLHttpRequest){
            req 
    = new XMLHttpRequest();
          }
    else if(window.ActiveXObject){
            req 
    = new ActiveXObject("Microsoft.XMLHTTP");
          }
          
    if(req){
            req.open(
    "GET",url,true);
             
    //指定回調(diào)函數(shù)為callback
            req.onreadystatechange = callback;
            req.send(
    null);
          }
        }
        
    //回調(diào)函數(shù)
        function callback(){
        
          
    if(req.readyState ==4){
            
    if(req.status ==200){
          
              parseMessage();
    //解析XML文檔
               
            }
    else{
              alert(
    "不能得到描述信息:" + req.statusText);
            }
          }
        }
        
    //解析返回xml的方法
        function parseMessage(){
          
    var xmlDoc = req.responseXML.documentElement;//獲得返回的XML文檔
           
          
    var xSel = xmlDoc.getElementsByTagName('select');
          
          
    //獲得XML文檔中的所有<select>標記
          var select_root = document.getElementById('childType');
        
          
    //獲得網(wǎng)頁中的第二個下拉框
          select_root.options.length=0;
          
    //每次獲得新的數(shù)據(jù)的時候先把每二個下拉框架的長度清0
          for(var i=0;i<xSel.length;i++){
            
    var xValue = xSel[i].childNodes[0].firstChild.nodeValue;
            
    //獲得每個<select>標記中的第一個標記的值,也就是<value>標記的值
            var xText = xSel[i].childNodes[1].firstChild.nodeValue;
            
    //獲得每個<select>標記中的第二個標記的值,也就是<text>標記的值

            
    var option = new Option(xText, xValue);
            
    //根據(jù)每組value和text標記的值創(chuàng)建一個option對象
            var option2=String.fromCharCode(option);
            
    try{
              select_root.add(option);
    //將option對象添加到第二個下拉框中
            }catch(e){
            }
          }
        }        
      
    </script>

        父類別:
     
    <select name="fatherType" id="fatherType" onChange="Change_Select()">
       
    <% for (int i = 0; i < list.size(); i++) {
             father = (FatherType) list.get(i);
             
    String selected = "";
       
    %>
                                        
                                             

      
    <option value="<%=father.getType()%>"><%=father.getType()%></option>
       <%
         }
       %>
    </select> <br>
    子類別:
     
    <select id="childType" name="childType">
     
    <option></option>                              
     
    </select>
                                           

                                           


    下面是nicholas項目下的select Servlet
    public class SelectServlet extends HttpServlet {

        
    private static final long serialVersionUID = 1L;
        
    public void doGet(HttpServletRequest request, HttpServletResponse response)
                
    throws ServletException, IOException {

            response.setContentType(
    "text/xml");  //xml傳遞過來的參數(shù)是以UTF-8編碼
            response.setHeader("Cache-Control""no-cache");
            request.setCharacterEncoding(
    "gbk");
            String targetId 
    = request.getParameter("fatherType");
            targetId
    =new String(targetId.getBytes("ISO-8859-1"),"gbk");//將已經(jīng)亂碼的參數(shù)轉(zhuǎn)碼為中文
            
    // 獲得請求中參數(shù)為id的值
            String xml_start = "<selects>";
            String xml_end 
    = "</selects>";
            String xml 
    = "";
            List list 
    = null;
            ChildType child 
    = null;
            TypeDAO typedao 
    = new TypeDAO();
            list 
    = typedao.getChildType(targetId);  //根據(jù)父類型參數(shù)查詢出子類型參數(shù)
            for (int i = 0; i < list.size(); i++) {
                child 
    = (ChildType) list.get(i);
                xml 
    += "<select><value>" + child.getType() + "</value><text>"
                        
    + child.getType() + "</text></select>";
            }
            String last_xml 
    = xml_start + xml + xml_end;
            response.setContentType(
    "text/xml;charset=utf-8"); //將中文參數(shù)傳遞時先轉(zhuǎn)碼為UTF-8
            PrintWriter out = response.getWriter(); 
            out.write(last_xml);

        }

        
    public void doPost(HttpServletRequest request, HttpServletResponse response)
                
    throws ServletException, IOException {

            
    this.doGet(request, response);
        }

    }



    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     

    posts - 28, comments - 5, trackbacks - 0, articles - 0

    Copyright © 橡皮人

    主站蜘蛛池模板: 国产在线观看免费视频软件| 日韩色日韩视频亚洲网站| 亚洲午夜日韩高清一区| 国产男女猛烈无遮挡免费视频网站 | 久久久无码精品亚洲日韩蜜桃| 久久久无码精品亚洲日韩软件| 亚洲AV无码专区日韩| 免费一级毛片免费播放| gogo全球高清大胆亚洲| 亚洲AV无码一区二区三区在线观看| 亚洲高清国产拍精品青青草原| 亚洲 综合 国产 欧洲 丝袜| 亚洲国产综合精品中文字幕| 久久激情亚洲精品无码?V| 亚洲色成人网站WWW永久| 亚洲av午夜福利精品一区人妖| 久久精品国产亚洲av麻| 精品亚洲A∨无码一区二区三区| 久久久亚洲AV波多野结衣| 亚洲一区二区三区免费在线观看| 亚洲一卡2卡4卡5卡6卡在线99| 亚洲熟妇av午夜无码不卡 | 亚洲成a人片在线观看中文动漫| 日韩亚洲AV无码一区二区不卡| 亚洲自偷自拍另类图片二区| 2020国产精品亚洲综合网| 亚洲熟妇自偷自拍另欧美| 亚洲av成人一区二区三区观看在线 | 亚洲免费闲人蜜桃| 亚洲av永久无码| 一级做a爱片特黄在线观看免费看| 在线观看免费黄色网址| 69精品免费视频| 免费看美女被靠到爽| 亚洲国产一区视频| 亚洲AV日韩精品久久久久久| 亚洲成人免费网站| 久久91亚洲精品中文字幕| 亚洲国产成人久久综合一区| 小说专区亚洲春色校园| 中文字幕在线免费播放|