<%@ page language="java" pageEncoding="gbk"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
System.out.println(basePath);
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'listBox.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script>
var
var xml;
function createXMLHttp()
{
if(window.XMLHttpRequest)
{
xmlHttp = new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
aVersions = ["Microsoft.XMLHttp","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.5.0","MSXML2.XMLHttp"];
for(var i=0; i< aVersions.length; i++)
{
try{
xmlHttp = new ActiveXObject(aVersions[i]);
return xmlHttp;
}
catch(e)
{
// nothing;
}
}
}
throw new Error("XMLHttp Object not Could Create");
}
function addOption(selectChild,elementParents,selectedValue)
{
var len = elementParents.length;
for(var i=0; i<len; i++)
{ var elementP= elementParents[i]; //父元素集合
var pAttrs = elementP.attributes;//单个的元素的属性集合
if(pAttrs[0].nodeValue==selectedValue)//判断是否是该元素
{
if(elementP.hasChildNodes())
{
var elementChilds = elementP.childNodes;
for(var j=0; j<elementChilds.length; j++)
{
var elementC = elementChilds[j];
if(elementC.hasChildNodes())
{
var e = elementC.childNodes[0];
if(e.nodeType==1 ){
var cAttrs = elementC.attributes;
var op = Option(cAttrs[1].nodeValue, cAttrs[0].nodeValue);
selectChild.options[j]= op;
}else{
var cAttrs = elementC.attributes;
var op = Option(elementC.text, cAttrs[0].nodeValue);
selectChild.options[j]= op;
}
}
}
}
}
}
}
function stateChange(){
var selectChild = document.getElementById("sZhen");
var elementParents = xml.getElementsByTagName("state");
var selectedValue = arguments[0].value;
addOption(selectChild,elementParents,selectedValue);
}
function proviceChange(){
var selectChild = document.getElementById("sState");
var elementParents = xml.getElementsByTagName("provice");
var selectedValue = arguments[0].value;
addOption(selectChild,elementParents,selectedValue);
selectChild1 = document.getElementById("sZhen");
elementParents = xml.getElementsByTagName("state");
selectedValue = selectChild.value;
addOption(selectChild1,elementParents,selectedValue)
}
function addProvice(sProvice,cities){
var len = cities.length;
for(var i=0; i< len; i++)
{
var el = cities[i];
var at = el.attributes;
if(el.hasChildNodes())
{
var elements = el.childNodes;
if(elements[0].nodeType==1){
var option = Option(at[1].nodeValue,at[0].nodeValue);
sProvice.options[i]=option;
}else{
var option = Option(el.text,at[0].nodeValue);
sProvice.options[i]=option;
}
}
}
var selectChild = document.getElementById("sState");
var elementParents = xml.getElementsByTagName("provice");
var selectedValue = sProvice.value;
addOption(selectChild,elementParents,selectedValue)
selectChild1 = document.getElementById("sZhen");
elementParents = xml.getElementsByTagName("state");
selectedValue = selectChild.value;
addOption(selectChild1,elementParents,selectedValue)
}
function ZhenChange(){
}
function RequestXMLHttp()
{
var date = new Date().getMilliseconds();
var xmlHttp = createXMLHttp();
xmlHttp.open("get","page/city.xml?"+date+"="+date+"",true);
xmlHttp.send(null);
xmlHttp.onreadystatechange = function()
{
if(xmlHttp.readyState == 4)
{
if(xmlHttp.status == 200)
{
xml = xmlHttp.responseXML;
var sProvice = document.getElementById("sProvice");
var cities = xml.getElementsByTagName("provice");
addProvice(sProvice,cities);
}
}
}
}
</script>
</head>
<body onload="RequestXMLHttp();">
<input type="button" value="点击" id="click" onclick="RequestXMLHttp();"/>
<table border="1">
<tbody>
<tr>
<td><select id="sProvice" onchange="proviceChange(this);"></select>
</td>
<td><select id="sState" onchange="stateChange(this);"></select></td>
<td><select id="sZhen" onchange="ZhenChange(this);"></select></td>
</tr>
</tbody>
</table>
</body>
</html>