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.
部署Hadoop(3.3.0)伪分布式集群
2.
从0开始搭建hadoop伪分布式集群(三:Zookeeper)
3.
centos7 vmware 搭建集群
4.
jsp的page指令
5.
Sql Server 2008R2 安装教程
6.
python:模块导入import问题总结
7.
Java控制修饰符,子类与父类,组合重载覆盖等问题
8.
(实测)Discuz修改论坛最后发表的帖子的链接为静态地址
9.
java参数传递时,究竟传递的是什么
10.
Linux---文件查看(4)
本站公众号
欢迎关注本站公众号,获取更多信息
相关文章
1.
二级联动菜单,简单实现
2.
ajax php mysql无限级联菜单 联动菜单 二级联动 三级联动菜单
3.
Excel实现二级菜单联动
4.
ajax实现级联下拉菜单
5.
Excel二级菜单联动
6.
二级联动菜单
7.
php二级联动菜单
8.
ThinkPHP + Ajax 实现2级联动下拉菜单
9.
jquery ajax实现省市二级联动
10.
JQuery+Ajax实现省市二级联动
>>更多相关文章<<