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.
eclipse設置粘貼字符串自動轉義
2.
android客戶端學習-啓動模擬器異常Emulator: failed to initialize HAX: Invalid argument
3.
android.view.InflateException: class com.jpardogo.listbuddies.lib.views.ListBuddiesLayout問題
4.
MYSQL8.0數據庫恢復 MYSQL8.0ibd數據恢復 MYSQL8.0恢復數據庫
5.
你本是一個肉體,是什麼驅使你前行【1】
6.
2018.04.30
7.
2018.04.30
8.
你本是一個肉體,是什麼驅使你前行【3】
9.
你本是一個肉體,是什麼驅使你前行【2】
10.
【資訊】LocalBitcoins達到每週交易比特幣的7年低點
本站公眾號
歡迎關注本站公眾號,獲取更多信息
相關文章
1.
二級聯動菜單,簡單實現
2.
ajax php mysql無限級聯菜單 聯動菜單 二級聯動 三級聯動菜單
3.
Excel實現二級菜單聯動
4.
ajax實現級聯下拉菜單
5.
Excel二級菜單聯動
6.
二級聯動菜單
7.
php二級聯動菜單
8.
ThinkPHP + Ajax 實現2級聯動下拉菜單
9.
jquery ajax實現省市二級聯動
10.
JQuery+Ajax實現省市二級聯動
>>更多相關文章<<