<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 | 々上善若水々
    主站蜘蛛池模板: 国产精品视频白浆免费视频| 美女被羞羞网站免费下载| 男人天堂免费视频| 亚洲中文字幕无码爆乳av中文| 99亚洲精品卡2卡三卡4卡2卡| 性做久久久久久久免费看| 91亚洲视频在线观看| 成人黄色免费网站| 中文字幕在线日亚洲9| 最好免费观看韩国+日本| 91精品免费不卡在线观看| 成年午夜视频免费观看视频| 99热亚洲色精品国产88| 99在线视频免费观看视频| 亚洲国产片在线观看| 在线看片免费不卡人成视频| 色五月五月丁香亚洲综合网| 国产高清免费在线| 亚洲精品视频免费观看| 亚洲国产成人片在线观看| 24小时免费看片| 丝瓜app免费下载网址进入ios| 成人免费视频软件网站| 羞羞的视频在线免费观看| 日韩精品成人亚洲专区| 最近免费字幕中文大全| 亚洲欧洲日产v特级毛片| 美女黄网站人色视频免费国产| 曰批全过程免费视频免费看 | 青娱乐免费视频在线观看| 亚洲人成电影青青在线播放| 全免费一级午夜毛片| 本免费AV无码专区一区| 亚洲视频国产精品| 国产99视频精品免费视频7| 中文字幕无码毛片免费看| 亚洲Av高清一区二区三区| 亚洲免费一区二区| 最近中文字幕大全免费视频| 亚洲国产精品成人AV在线| 日韩亚洲变态另类中文|