求一个使用Ajax的方式实现两级联动的例子。。要全 举个例子,就比如分类男装外套 男装羽绒服 男装马甲女装外套 女装大衣 女装风衣。最好把与Ajax相对应的servlet也发上来。。谢谢了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这是一个城市两级联动的,应该符合你的要求。<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body> <!-- 北京bj 东城 西城 崇文 天津 和平 河东 河西 --> <select id="city"> <option value="bj">北京</option> <option value="tj">天津</option> </select > <select id="country"></select> <script type="text/javascript"> alert("1"); var city = document.getElementById("city"); city.onchange = function() { alert("2"); //document.getElementById("city").value; var value = this.value; var xhr; if(window.XMLHttpRequest) { xhr = new XMLHttpRequest(); }else if(window.ActiveXObject) { xhr = new ActiveXObject( "Microsoft.XMLHttp" ); } xhr.onreadystatechange = function() { if(xhr.readyState == 4) { if(xhr.status == 200){ //xxx-xxx-xx var content = xhr.responseText; var countrys = content.split("-"); var c = document.getElementById("country"); var children = c.childNodes; while(c.hasChildNodes()) { c.removeChild(children[0]); } for(var i=0;i<countrys.length;i++) { //alert("xxx"); var option = document.createElement("option"); option.innerHTML = countrys[i]; c.appendChild(option); } } } } xhr.open("GET","cityServlet?city=" + value,true); xhr.send(null); } </script></body></html>下面是服务端:package com.briup.servlet;import java.io.IOException;import java.io.PrintWriter;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.sun.corba.se.impl.ior.WireObjectKeyTemplate;/** * Servlet implementation class CityServlet */public class CityServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public CityServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse * response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse * response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Map<String, List<String>> citys = new HashMap<String, List<String>>(); List<String> bList = new ArrayList<String>(); bList.add("涓滃煄"); bList.add("瑗垮煄"); bList.add("宕囨枃"); citys.put("bj", bList); List<String> tList = new ArrayList<String>(); tList.add("鍜屽钩"); tList.add("娌充笢"); tList.add("娌宠タ"); citys.put("tj", tList); request.setCharacterEncoding("UTF-8"); String city = request.getParameter("city"); List<String> list = citys.get(city); String result = ""; for(String s : list) { result += s + "-"; /////// } response.setCharacterEncoding("UTF-8"); response.setContentType("text/plain"); PrintWriter writer = response.getWriter(); writer.print(result); }} 脚本说明:将下面代码加到<body>与</body>之间<p>选定一项或多项然后点击添加或移除(按住shift或ctrl可以多选),或在选择项上双击进行添加和移除。</p><form method="post" name="myform"> <table border="0" width="300"> <tr> <td width="40%"> <select style="width:100%;" multiple name="list1" size="12" ondblclick="moveOption(document.myform.list1, document.myform.list2)"> <option value="北京">北京</option> <option value="上海">上海</option> <option value="山东">山东</option> <option value="安徽">安徽</option> <option value="重庆">重庆</option> <option value="福建">福建</option> <option value="甘肃">甘肃</option> <option value="广东">广东</option> <option value="广西">广西</option> <option value="贵州">贵州</option> <option value="海南">海南</option> <option value="河北">河北</option> <option value="黑龙江">黑龙江</option> <option value="河南">河南</option> <option value="湖北">湖北</option> <option value="湖南">湖南</option> <option value="内蒙古">内蒙古</option> <option value="江苏">江苏</option> <option value="江西">江西</option> <option value="吉林">吉林</option> <option value="辽宁">辽宁</option> <option value="宁夏">宁夏</option> <option value="青海">青海</option> <option value="山西">山西</option> <option value="陕西">陕西</option> <option value="四川">四川</option> <option value="天津">天津</option> <option value="西藏">西藏</option> <option value="新疆">新疆</option> <option value="云南">云南</option> <option value="浙江">浙江</option> <option value="香港">香港</option> <option value="澳门">澳门</option> <option value="台湾">台湾</option> <option value="其他">其他</option> </select> </td> <td width="20%" align="center"> <input type="button" value="添加" onclick="moveOption(document.myform.list1, document.myform.list2)"><br><br> <input type="button" value="删除" onclick="moveOption(document.myform.list2, document.myform.list1)"> </td> <td width="40%"> <select style="width:100%;" multiple name="list2" size="12" ondblclick="moveOption(document.myform.list2, document.myform.list1)"> </select> </td> </tr> </table>值:<input type="text" name="city" size="40" value="" /></form><script language="JavaScript"><!--function moveOption(e1, e2){ try{ for(var i=0;i<e1.options.length;i++){ if(e1.options[i].selected){ var e = e1.options[i]; e2.options.add(new Option(e.text, e.value)); e1.remove(i); i=i-1 } } document.myform.city.value=getvalue(document.myform.list2); } catch(e){}}function getvalue(geto){ var allvalue = ""; for(var i=0;i<geto.options.length;i++){ allvalue +=geto.options[i].value + ","; } return allvalue;}//--></script> java使用POI创建excel的问题 有个别人写的jar包。我想修改里面的一个class,然后再打jar包,还原回去,怎么办? JBOSS怎么修改端口号 spring获得取Session问题(连接多个数据库) 求HQL语句(Hibernate一对多问题) 如何安装j2ee? 100分急求 一个struts问题 希望能解决 郁闷的tomcat启动错误 如何在网页上显示applet SSM项目junit测试时出现的数据库问题 轻量级Java EE企业应用实战:Struts 2+Spring 3+Hibernate整合开发.第3版 struts2+jxl导出excel无法下载
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<!--
北京bj
东城
西城
崇文
天津
和平
河东
河西
-->
<select id="city">
<option value="bj">北京</option>
<option value="tj">天津</option>
</select >
<select id="country"></select>
<script type="text/javascript">
alert("1");
var city = document.getElementById("city");
city.onchange = function() {
alert("2");
//document.getElementById("city").value;
var value = this.value;
var xhr;
if(window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
}else if(window.ActiveXObject) {
xhr = new ActiveXObject(
"Microsoft.XMLHttp"
);
}
xhr.onreadystatechange = function() {
if(xhr.readyState == 4) {
if(xhr.status == 200){
//xxx-xxx-xx
var content = xhr.responseText;
var countrys = content.split("-");
var c = document.getElementById("country");
var children = c.childNodes;
while(c.hasChildNodes()) {
c.removeChild(children[0]);
}
for(var i=0;i<countrys.length;i++) {
//alert("xxx");
var option = document.createElement("option");
option.innerHTML = countrys[i];
c.appendChild(option);
}
}
}
}
xhr.open("GET","cityServlet?city=" + value,true);
xhr.send(null);
}
</script>
</body>
</html>
下面是服务端:package com.briup.servlet;import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.sun.corba.se.impl.ior.WireObjectKeyTemplate;/**
* Servlet implementation class CityServlet
*/
public class CityServlet extends HttpServlet {
private static final long serialVersionUID = 1L; /**
* @see HttpServlet#HttpServlet()
*/
public CityServlet() {
super();
// TODO Auto-generated constructor stub
} /**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
} /**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
Map<String, List<String>> citys = new HashMap<String, List<String>>();
List<String> bList = new ArrayList<String>();
bList.add("涓滃煄");
bList.add("瑗垮煄");
bList.add("宕囨枃");
citys.put("bj", bList);
List<String> tList = new ArrayList<String>();
tList.add("鍜屽钩");
tList.add("娌充笢");
tList.add("娌宠タ");
citys.put("tj", tList);
request.setCharacterEncoding("UTF-8");
String city = request.getParameter("city");
List<String> list = citys.get(city);
String result = "";
for(String s : list) {
result += s + "-"; ///////
}
response.setCharacterEncoding("UTF-8");
response.setContentType("text/plain");
PrintWriter writer = response.getWriter();
writer.print(result);
}}
将下面代码加到<body>与</body>之间<p>选定一项或多项然后点击添加或移除(按住shift或ctrl可以多选),或在选择项上双击进行添加和移除。</p>
<form method="post" name="myform">
<table border="0" width="300">
<tr>
<td width="40%">
<select style="width:100%;" multiple name="list1" size="12" ondblclick="moveOption(document.myform.list1, document.myform.list2)">
<option value="北京">北京</option>
<option value="上海">上海</option>
<option value="山东">山东</option>
<option value="安徽">安徽</option>
<option value="重庆">重庆</option>
<option value="福建">福建</option>
<option value="甘肃">甘肃</option>
<option value="广东">广东</option>
<option value="广西">广西</option>
<option value="贵州">贵州</option>
<option value="海南">海南</option>
<option value="河北">河北</option>
<option value="黑龙江">黑龙江</option>
<option value="河南">河南</option>
<option value="湖北">湖北</option>
<option value="湖南">湖南</option>
<option value="内蒙古">内蒙古</option>
<option value="江苏">江苏</option>
<option value="江西">江西</option>
<option value="吉林">吉林</option>
<option value="辽宁">辽宁</option>
<option value="宁夏">宁夏</option>
<option value="青海">青海</option>
<option value="山西">山西</option>
<option value="陕西">陕西</option>
<option value="四川">四川</option>
<option value="天津">天津</option>
<option value="西藏">西藏</option>
<option value="新疆">新疆</option>
<option value="云南">云南</option>
<option value="浙江">浙江</option>
<option value="香港">香港</option>
<option value="澳门">澳门</option>
<option value="台湾">台湾</option>
<option value="其他">其他</option>
</select>
</td>
<td width="20%" align="center">
<input type="button" value="添加" onclick="moveOption(document.myform.list1, document.myform.list2)"><br><br>
<input type="button" value="删除" onclick="moveOption(document.myform.list2, document.myform.list1)">
</td>
<td width="40%">
<select style="width:100%;" multiple name="list2" size="12" ondblclick="moveOption(document.myform.list2, document.myform.list1)">
</select>
</td>
</tr>
</table>
值:<input type="text" name="city" size="40" value="" />
</form>
<script language="JavaScript">
<!--
function moveOption(e1, e2){
try{
for(var i=0;i<e1.options.length;i++){
if(e1.options[i].selected){
var e = e1.options[i];
e2.options.add(new Option(e.text, e.value));
e1.remove(i);
i=i-1
}
}
document.myform.city.value=getvalue(document.myform.list2);
}
catch(e){}
}
function getvalue(geto){
var allvalue = "";
for(var i=0;i<geto.options.length;i++){
allvalue +=geto.options[i].value + ",";
}
return allvalue;
}
//-->
</script>