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

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

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

    我的漫漫程序之旅

    專注于JavaWeb開發(fā)
    隨筆 - 39, 文章 - 310, 評論 - 411, 引用 - 0
    數(shù)據(jù)加載中……

    Ajax實現(xiàn)二級聯(lián)動菜單

    index.jsp:
    <%@ page language="java" pageEncoding="UTF-8"%>
    <html>
        
    <head>
            
    <title>二級菜單聯(lián)動演示</title>
            
    <script type="text/javascript">
        
    var req;
        window.onload
    =function()
        
    {//頁面加載時的函數(shù)
        }

        
        
    function Change_Select(){//當?shù)谝粋€下拉框的選項發(fā)生改變時調(diào)用該函數(shù)
          var province = document.getElementById('province').value;
          
    var url = "select?id="+ escape(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('city');
          
    //獲得網(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對象
            
            
    try{
              select_root.add(option);
    //將option對象添加到第二個下拉框中
            }
    catch(e){
            }

          }

        }
            
      
    </script>
        
    </head>

        
    <body>
            
    <div align="center">
                
    <form name="form1" method="post" action="">
                    
    <table width="70%" border="0" cellspacing="0" cellpadding="0">
                        
    <tr>
                            
    <td align="center">
                                二級聯(lián)動示例
                            
    </td>
                        
    </tr>
                        
    <tr>
                            
    <td>
                                
    <select name="province" id="province" onChange="Change_Select()">
                                    
    <!--第一個下拉菜單-->
                                    
    <option value="0">
                                        請選擇
                                    
    </option>
                                    
    <option value="1">
                                        北京
                                    
    </option>
                                    
    <option value="2">
                                        天津
                                    
    </option>
                                    
    <option value="3">
                                        山東
                                    
    </option>
                                
    </select>
                                
    <select name="city" id="city">
                                    
    <!--第二個下拉菜單-->
                                    
    <option value="0">
                                        請選擇
                                    
    </option>
                                
    </select>
                            
    </td>
                        
    </tr>
                        
    <tr>
                            
    <td>
                            
    </td>
                        
    <tr>
                    
    </table>
                
    </form>
            
    </div>
        
    </body>
    </html>

    SelectServlet:
    package com;

    import java.io.IOException;

    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    /***
     * 
     * 
    @author zdw
     *
     
    */

    public class SelectServlet extends HttpServlet
    {

        
    private static final long serialVersionUID = 1L;

        
    public SelectServlet()
        
    {
            
    super();
        }


        
    public void destroy()
        
    {
            
    super.destroy();
        }


        
    public void doGet(HttpServletRequest request, HttpServletResponse response)
                
    throws ServletException, IOException
        
    {
    //        response.setCharacterEncoding("GBK");
            response.setContentType("text/xml");
            response.setHeader(
    "Cache-Control""no-cache");
            request.setCharacterEncoding(
    "GBK");
            response.setCharacterEncoding(
    "UTF-8");
            String targetId 
    = request.getParameter("id").toString();
            System.out.println(targetId);
            
    // 獲得請求中參數(shù)為id的值
            String xml_start = "<selects>";
            String xml_end 
    = "</selects>";
            String xml 
    = "";

            
    if (targetId.equalsIgnoreCase("0"))
            
    {
                xml 
    = "<select><value>0</value><text>請選擇</text></select>";
            }
     else if (targetId.equalsIgnoreCase("1"))
            
    {
                xml 
    = "<select><value>1</value><text>昌平</text></select>";
                xml 
    += "<select><value>2</value><text>豐臺</text></select>";
                xml 
    += "<select><value>3</value><text>海淀</text></select>";
                xml 
    += "<select><value>4</value><text>朝陽</text></select>";
            }
     else if (targetId.equalsIgnoreCase("2"))
            
    {
                xml 
    = "<select><value>1</value><text>塘沽區(qū)</text></select>";
                xml 
    += "<select><value>2</value><text>漢沽區(qū)</text></select>";
                xml 
    += "<select><value>3</value><text>大港區(qū)</text></select>";
                xml 
    += "<select><value>4</value><text>東麗區(qū)</text></select>";
            }
     else
            
    {// 如果是3,則返回下面的字符
                xml = "<select><value>1</value><text>濟南</text></select>";
                xml 
    += "<select><value>2</value><text>青島</text></select>";
                xml 
    += "<select><value>3</value><text>淄博</text></select>";
                xml 
    += "<select><value>4</value><text>棗莊</text></select>";
            }


            String last_xml 
    = xml_start + xml + xml_end;
            response.getWriter().write(last_xml);

        }


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


        
    public void init() throws ServletException
        
    {
        }


    }


    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>
    源碼下載


    posted on 2008-05-29 09:12 々上善若水々 閱讀(11349) 評論(3)  編輯  收藏 所屬分類: AJAX

    評論

    # re: Ajax實現(xiàn)二級聯(lián)動菜單[未登錄]  回復  更多評論   

    呵呵,純手寫。
    不用Ajax框架。不錯!
    2008-05-30 17:56 |

    # re: Ajax實現(xiàn)二級聯(lián)動菜單  回復  更多評論   

    哥們,你這從Servlet里返回的數(shù)據(jù)是亂碼呀
    2008-08-27 21:06 | 麥田守望者

    # re: Ajax實現(xiàn)二級聯(lián)動菜單  回復  更多評論   

    你試過了嗎?這個例子在我這運行并不亂碼。
    2008-08-29 07:00 | 々上善若水々
    主站蜘蛛池模板: 亚洲视频一区在线播放| 黄页网站免费观看| 亚洲色婷婷综合久久| 国产精品亚洲αv天堂无码| 免费国产一级特黄久久| 国产高清视频在线免费观看| 免费无码又爽又刺激毛片| 永久免费AV无码网站在线观看| 成年女人免费碰碰视频| 永久免费AV无码网站在线观看| 日韩中文字幕免费| 免费A级毛片在线播放不收费| 亚洲国产日韩在线观频| 在线a亚洲v天堂网2019无码| 国产亚洲婷婷香蕉久久精品| 亚洲avav天堂av在线不卡| 亚洲视频一区二区在线观看| 亚洲va成无码人在线观看| 亚洲av中文无码字幕色不卡 | 国产无人区码卡二卡三卡免费| 麻豆最新国产剧情AV原创免费| 毛片a级毛片免费观看品善网| 曰皮全部过程视频免费国产30分钟| 国产成人高清精品免费软件| 亚洲无线一二三四区手机| 好看的亚洲黄色经典| 亚洲男人天堂影院| 亚洲精品久久久久无码AV片软件| 黄色毛片免费在线观看| 精品国产一区二区三区免费| 成年免费大片黄在线观看岛国| 成人爱做日本视频免费| 国产成人精品曰本亚洲79ren| 亚洲av无码无在线观看红杏| 亚洲1区1区3区4区产品乱码芒果| 国产精品亚洲а∨天堂2021| a毛片免费全部播放完整成| 免费看成人AA片无码视频羞羞网| 国产精品免费_区二区三区观看 | www.免费在线观看| 免费国产在线观看|