中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Ajax中二級聯動菜單的實現原理是什么

發布時間:2021-08-09 16:20:51 來源:億速云 閱讀:124 作者:Leah 欄目:web開發

Ajax中二級聯動菜單的實現原理是什么,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

index.jsp:

<%@ page language="java" pageEncoding="UTF-8"%> 
<html> 
<head> 
<title>二級菜單聯動演示</title> 
<script type="text/javascript"> 
var req; 
window.onload=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>


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); 
// 獲得請求中參數為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>塘沽區</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 
{// 如果是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>

看完上述內容,你們掌握Ajax中二級聯動菜單的實現原理是什么的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

华亭县| 铜山县| 台江县| 五大连池市| 大关县| 嘉禾县| 会理县| 中牟县| 临安市| 苗栗市| 高要市| 辽源市| 紫阳县| 肥东县| 赣榆县| 伊吾县| 灌阳县| 东丽区| 漯河市| 手机| 长岭县| 霍城县| 安国市| 齐齐哈尔市| 岐山县| 依兰县| 隆尧县| 东港市| 临安市| 怀来县| 辽阳市| 南郑县| 湘潭县| 鹿泉市| 靖边县| 固始县| 陵水| 衡东县| 城固县| 兴义市| 丰县|