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

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

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

      一個(gè)簡單的純手工的Ajax&&JSP二級(jí)聯(lián)動(dòng)。
    <script type="text/javascript">
        
    var req;
        window.onload
    =function()
        {
    //頁面加載時(shí)的函數(shù)
        }
        
        
    function Change_Select(){//當(dāng)?shù)谝粋€(gè)下拉框的選項(xiàng)發(fā)生改變時(shí)調(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>標(biāo)記
          var select_root = document.getElementById('childType');
        
          
    //獲得網(wǎng)頁中的第二個(gè)下拉框
          select_root.options.length=0;
          
    //每次獲得新的數(shù)據(jù)的時(shí)候先把每二個(gè)下拉框架的長度清0
          for(var i=0;i<xSel.length;i++){
            
    var xValue = xSel[i].childNodes[0].firstChild.nodeValue;
            
    //獲得每個(gè)<select>標(biāo)記中的第一個(gè)標(biāo)記的值,也就是<value>標(biāo)記的值
            var xText = xSel[i].childNodes[1].firstChild.nodeValue;
            
    //獲得每個(gè)<select>標(biāo)記中的第二個(gè)標(biāo)記的值,也就是<text>標(biāo)記的值

            
    var option = new Option(xText, xValue);
            
    //根據(jù)每組value和text標(biāo)記的值創(chuàng)建一個(gè)option對(duì)象
            var option2=String.fromCharCode(option);
            
    try{
              select_root.add(option);
    //將option對(duì)象添加到第二個(gè)下拉框中
            }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項(xiàng)目下的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)碼為中文
            
    // 獲得請(qǐng)求中參數(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ù)傳遞時(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);
        }

    }



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


    網(wǎng)站導(dǎo)航:
     

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

    Copyright © 橡皮人

    主站蜘蛛池模板: 亚洲AV无码成人专区片在线观看 | baoyu777永久免费视频| 亚洲av无码久久忘忧草| 国产亚洲精品无码成人| 国产无遮挡又黄又爽免费视频| 你懂的免费在线观看网站| 免费在线观看一区| 中文有码亚洲制服av片| 亚洲精品国产免费| 亚洲AV无码久久| 亚洲精品午夜无码电影网| 亚洲精品无码专区久久同性男| 妞干网在线免费观看| 日韩欧毛片免费视频| 最近中文字幕2019高清免费| 3344在线看片免费| 一级人做人a爰免费视频 | 最近中文字幕无免费视频| 久久久久久毛片免费播放| 最近免费字幕中文大全| 久久久精品视频免费观看| 日韩精品免费一线在线观看| 亚洲精品无码不卡在线播放| 亚洲三级高清免费| 亚洲av无码一区二区三区天堂古代| 麻豆亚洲AV永久无码精品久久 | 99久久99热精品免费观看国产| 日韩免费高清播放器| 99精品免费视品| 十八禁在线观看视频播放免费| a级片在线免费看| 男人天堂免费视频| 成人性生交大片免费看中文| 99re6在线精品免费观看| 久久免费精品一区二区| 久9这里精品免费视频| 99re在线这里只有精品免费| 久久久久av无码免费网| 色影音免费色资源| 成年女人18级毛片毛片免费 | 亚洲人成77777在线观看网|