JavaShuo
欄目
標籤
Ajax實現二級聯動菜單
時間 2021-08-12
標籤
javascript
html
java
node
web
app
框架
jsp
ide
函數
欄目
Ajax
简体版
原文
原文鏈接
http://www.blogjava.net/supercrsky/articles/203698.html
javascript
index.jsp:
html
<%
@ 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
>
相關文章
1.
二級聯動菜單,簡單實現
2.
ajax php mysql無限級聯菜單 聯動菜單 二級聯動 三級聯動菜單
3.
Excel實現二級菜單聯動
4.
ajax實現級聯下拉菜單
5.
Excel二級菜單聯動
6.
二級聯動菜單
7.
php二級聯動菜單
8.
ThinkPHP + Ajax 實現2級聯動下拉菜單
9.
jquery ajax實現省市二級聯動
10.
JQuery+Ajax實現省市二級聯動
更多相關文章...
•
Hibernate整合EHCache實現二級緩存
-
Hibernate教程
•
Eclipse 菜單
-
Eclipse 教程
•
☆基於Java Instrument的Agent實現
•
Spring Cloud 微服務實戰(三) - 服務註冊與發現
相關標籤/搜索
三級菜單
手動實現
菜單
級聯
聯動
二級
實現
現實
菜單項
JavaScript
HTML
Ajax
Java
JSP
紅包項目實戰
MyBatis教程
NoSQL教程
Ajax
0
分享到微博
分享到微信
分享到QQ
每日一句
每一个你不满意的现在,都有一个你没有努力的曾经。
最新文章
1.
gitlab新建分支後,android studio拿不到
2.
Android Wi-Fi 連接/斷開時間
3.
今日頭條面試題+答案,花點時間看看!
4.
小程序時間組件的開發
5.
小程序學習系列一
6.
[微信小程序] 微信小程序學習(一)——起步
7.
硬件
8.
C3盒模型以及他出現的必要性和圓角邊框/前端三
9.
DELL戴爾筆記本關閉觸摸板觸控板WIN10
10.
Java的long和double類型的賦值操作爲什麼不是原子性的?
本站公眾號
歡迎關注本站公眾號,獲取更多信息
相關文章
1.
二級聯動菜單,簡單實現
2.
ajax php mysql無限級聯菜單 聯動菜單 二級聯動 三級聯動菜單
3.
Excel實現二級菜單聯動
4.
ajax實現級聯下拉菜單
5.
Excel二級菜單聯動
6.
二級聯動菜單
7.
php二級聯動菜單
8.
ThinkPHP + Ajax 實現2級聯動下拉菜單
9.
jquery ajax實現省市二級聯動
10.
JQuery+Ajax實現省市二級聯動
>>更多相關文章<<