Content

Ajax实现二级联动菜单(ajax实现二级联动菜单功能)这样也行?

文章摘要

本文介绍了使用Java脚本和XML实现二级菜单联动演示的技术方案。通过第一个下拉菜单(省份)的值变化触发HTTP请求,获取对应的多个城市信息,并将这些城市数据动态地更新到第二个下拉菜单中。具体实现包括: 1. **技术实现**: - 使用`DOM`操作生成HTML结构 - 通过`DOM`获取`select`元素的`value`和`text`属性 - 使用`HTTP`请求获取`XML`数据 - 通过`XML`解析提取城市信息 - 将解析结果创建为`Option`对象并添加到第二个下拉菜单中 2. **核心功能**: - 实现省份与城市的一对多联动 - 通过动态数据更新提升用户体验 - 显示“请选择”选项时,自动加载有效值 3. **应用价值**: - 适用于需要实时数据更新的场景 - 方便用户快速选择相关城市 - 提供直观的交互体验 总结:该方案通过巧妙的脚本交互和数据解析,实现了二级菜单的联动功能,具有较高的实用价值。

 <%@ page language=”java” pageEncoding=”UTF-8″%> <html> <head> <title>二级菜单联动演示</title> <script type=”text/javascript”> var req; window.οnlοad=function() {//页面加载时的函数 } function Change_Select(){//当第一个下拉框的选项发生改变时调用该函数 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); //指定回调函数为callback req.onreadystatechange=callback; req.send(null); } } //回调函数 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’); //获得网页中的第二个下拉框 select_root.options.length=0; //每次获得新的数据的时候先把每二个下拉框架的长度清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); //根据每组value和text标记的值创建一个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”> 二级联动示例 </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>