系统城装机大师 - 固镇县祥瑞电脑科技销售部宣传站!

当前位置:首页 > 网络编程 > AJAX相关 > 详细页面

Ajax实现二级联动菜单

时间:2020-02-03来源:系统城作者:电脑系统城

本文实例为大家分享了Ajax二级联动菜单的具体代码,供大家参考,具体内容如下

index.jsp


 
  1. <%@ page language="java" pageEncoding="UTF-8"%>
  2. <html>
  3. <head>
  4. <title>二级菜单联动演示</title>
  5. <script type="text/javascript">
  6. var req;
  7. window.οnlοad=function()
  8. {//页面加载时的函数
  9. }
  10.  
  11. function Change_Select(){//当第一个下拉框的选项发生改变时调用该函数
  12. var province = document.getElementById('province').value;
  13. var url = "select?id="+ escape(province);
  14. if(window.XMLHttpRequest){
  15. req = new XMLHttpRequest();
  16. }else if(window.ActiveXObject){
  17. req = new ActiveXObject("Microsoft.XMLHTTP");
  18. }
  19. if(req){
  20. req.open("GET",url,true);
  21. //指定回调函数为callback
  22. req.onreadystatechange = callback;
  23. req.send(null);
  24. }
  25. }
  26. //回调函数
  27. function callback(){
  28. if(req.readyState ==4){
  29. if(req.status ==200){
  30. parseMessage();//解析XML文档
  31. }else{
  32. alert("不能得到描述信息:" + req.statusText);
  33. }
  34. }
  35. }
  36. //解析返回xml的方法
  37. function parseMessage(){
  38. var xmlDoc = req.responseXML.documentElement;//获得返回的XML文档
  39. var xSel = xmlDoc.getElementsByTagName('select');
  40. //获得XML文档中的所有<select>标记
  41. var select_root = document.getElementById('city');
  42. //获得网页中的第二个下拉框
  43. select_root.options.length=0;
  44. //每次获得新的数据的时候先把每二个下拉框架的长度清0
  45.  
  46. for(var i=0;i<xSel.length;i++){
  47. var xValue = xSel[i].childNodes[0].firstChild.nodeValue;
  48. //获得每个<select>标记中的第一个标记的值,也就是<value>标记的值
  49. var xText = xSel[i].childNodes[1].firstChild.nodeValue;
  50. //获得每个<select>标记中的第二个标记的值,也就是<text>标记的值
  51.  
  52. var option = new Option(xText, xValue);
  53. //根据每组value和text标记的值创建一个option对象
  54.  
  55. try{
  56. select_root.add(option);//将option对象添加到第二个下拉框中
  57. }catch(e){
  58. }
  59. }
  60. }
  61. </script>
  62. </head>
  63.  
  64. <body>
  65. <div align="center">
  66. <form name="form1" method="post" action="">
  67. <table width="70%" border="0" cellspacing="0" cellpadding="0">
  68. <tr>
  69. <td align="center">
  70. 二级联动示例
  71. </td>
  72. </tr>
  73. <tr>
  74. <td>
  75. <select name="province" id="province" onChange="Change_Select()">
  76. <!--第一个下拉菜单-->
  77. <option value="0">
  78. 请选择
  79. </option>
  80. <option value="1">
  81. 北京
  82. </option>
  83. <option value="2">
  84. 天津
  85. </option>
  86. <option value="3">
  87. 山东
  88. </option>
  89. </select>
  90. <select name="city" id="city">
  91. <!--第二个下拉菜单-->
  92. <option value="0">
  93. 请选择
  94. </option>
  95. </select>
  96. </td>
  97. </tr>
  98. <tr>
  99. <td>
  100. </td>
  101. <tr>
  102. </table>
  103. </form>
  104. </div>
  105. </body>
  106. </html>

SelectServlet.java


 
  1. package com;
  2.  
  3. import java.io.IOException;
  4.  
  5. import javax.servlet.ServletException;
  6. import javax.servlet.http.HttpServlet;
  7. import javax.servlet.http.HttpServletRequest;
  8. import javax.servlet.http.HttpServletResponse;
  9. /***
  10. *
  11. * @author zdw
  12. *
  13. */
  14. public class SelectServlet extends HttpServlet
  15. {
  16.  
  17. private static final long serialVersionUID = 1L;
  18.  
  19. public SelectServlet()
  20. {
  21. super();
  22. }
  23.  
  24. public void destroy()
  25. {
  26. super.destroy();
  27. }
  28.  
  29. public void doGet(HttpServletRequest request, HttpServletResponse response)
  30. throws ServletException, IOException
  31. {
  32. // response.setCharacterEncoding("GBK");
  33. response.setContentType("text/xml");
  34. response.setHeader("Cache-Control", "no-cache");
  35. request.setCharacterEncoding("GBK");
  36. response.setCharacterEncoding("UTF-8");
  37. String targetId = request.getParameter("id").toString();
  38. System.out.println(targetId);
  39. // 获得请求中参数为id的值
  40. String xml_start = "<selects>";
  41. String xml_end = "</selects>";
  42. String xml = "";
  43.  
  44. if (targetId.equalsIgnoreCase("0"))
  45. {
  46. xml = "<select><value>0</value><text>请选择</text></select>";
  47. } else if (targetId.equalsIgnoreCase("1"))
  48. {
  49. xml = "<select><value>1</value><text>昌平</text></select>";
  50. xml += "<select><value>2</value><text>丰台</text></select>";
  51. xml += "<select><value>3</value><text>海淀</text></select>";
  52. xml += "<select><value>4</value><text>朝阳</text></select>";
  53. } else if (targetId.equalsIgnoreCase("2"))
  54. {
  55. xml = "<select><value>1</value><text>塘沽区</text></select>";
  56. xml += "<select><value>2</value><text>汉沽区</text></select>";
  57. xml += "<select><value>3</value><text>大港区</text></select>";
  58. xml += "<select><value>4</value><text>东丽区</text></select>";
  59. } else
  60. {// 如果是3,则返回下面的字符
  61. xml = "<select><value>1</value><text>济南</text></select>";
  62. xml += "<select><value>2</value><text>青岛</text></select>";
  63. xml += "<select><value>3</value><text>淄博</text></select>";
  64. xml += "<select><value>4</value><text>枣庄</text></select>";
  65. }
  66.  
  67. String last_xml = xml_start + xml + xml_end;
  68. response.getWriter().write(last_xml);
  69.  
  70. }
  71.  
  72. public void doPost(HttpServletRequest request, HttpServletResponse response)
  73. throws ServletException, IOException
  74. {
  75. doGet(request, response);
  76. }
  77.  
  78. public void init() throws ServletException
  79. {
  80. }
  81.  
  82. }

web.xml


 
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
  5. http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  6. <servlet>
  7. <servlet-name>SelectServlet</servlet-name>
  8. <servlet-class>com.SelectServlet</servlet-class>
  9. </servlet>
  10.  
  11. <servlet-mapping>
  12. <servlet-name>SelectServlet</servlet-name>
  13. <url-pattern>/select</url-pattern>
  14. </servlet-mapping>
  15. <welcome-file-list>
  16. <welcome-file>index.jsp</welcome-file>
  17. </welcome-file-list>
  18. </web-app>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

分享到:

相关信息

系统教程栏目

栏目热门教程

人气教程排行

站长推荐

热门系统下载