//alert(xmlDoc.xml); var com=xmlDoc.documentElement.childNodes[0]; //alert(trade_code); j=com.childNodes.length; //清空原先s2下啦框选项 for (i=FormName.s2.length-1;i>=0;i--) FormName.s2.remove(i) //清空原先s3下啦框选项 for (i=FormName.s3.length-1;i>=0;i--) FormName.s3.remove(i)
FormName.s2.options[0]=new Option("请选择省份",""); //根据数据库值重新填充s2 for (i=1;i<=j;i++) { FormName.s2.options[i]=new Option(com.childNodes[i-1].getAttribute("D"),com.childNodes[i-1].getAttribute("V")); } FormName.s2.selectedIndex=0; }else{ //清空原先s3下啦框选项 for (i=FormName.s2.length-1;i>=0;i--) FormName.s2.remove(i) //清空原先s3下啦框选项 for (i=FormName.s3.length-1;i>=0;i--) FormName.s3.remove(i)
//alert(xmlDoc.xml); var com=xmlDoc.documentElement.childNodes[0]; //alert(trade_code); j=com.childNodes.length; //清空原先s3下啦框选项 for (i=FormName.s3.length-1;i>=0;i--) FormName.s3.remove(i)
FormName.s3.options[0]=new Option("请选择市",""); //根据数据库值重新填充s2 for (i=1;i<=j;i++) { FormName.s3.options[i]=new Option(com.childNodes[i-1].getAttribute("D"),com.childNodes[i-1].getAttribute("V")); } FormName.s3.selectedIndex=0; }else{ //清空原先s3下啦框选项 for (i=FormName.s3.length-1;i>=0;i--) FormName.s3.remove(i)
FormName.s3.options[0]=new Option("请选择市",""); FormName.s3.selectedIndex=0; } } </script> b.asp的代码描述: <?xml version="1.0" encoding="gb2312"?> <% '接受参数:pid根据pid读取字类数据 Dim pid pid=request("pid") if len(pid)=0 then pid=-1 on Error resume next set rs=server.CreateObject ("ADODB.recordset") szSql="select Dco_ID,Dco_Name from tDateCode where Dco_PID= "&pid&" order by Dco_Order" rs.Open szSql,conn,1,1
%> <U> <C> <% '循环将数据读出 while not rs.EOF %> <R V="<%=rs("Dco_ID")%>" D="<%=rs("Dco_Name")%>"></R> <% rs.MoveNext wend rs.close %> </C> </U>
最好是用jsp生成个xml的树,再用javascript分析xml树控制显示<xml id="menudata">
<root>
<country value="china" label="中国">
<city value="bj" label="北京"/>
</country>
</root>
</xml>
在s1,s2的OnChange()事件中分别调用javascript脚本:c1(),c2() ;
<SCRIPT language=JavaScript>
function c1()
{
//功能:更据s1的值从数据库中读取s2的值
var i,j
var trade_code
var xmlDoc = new ActiveXObject("Msxml.DOMDocument");
trade_code=FormName.s1.value;//你选择的国家
if(trade_code.length>0){
xmlDoc.async = false;
xmlDoc.load("b.asp?pid="+trade_code.toString());
//alert(xmlDoc.xml);
var com=xmlDoc.documentElement.childNodes[0];
//alert(trade_code);
j=com.childNodes.length;
//清空原先s2下啦框选项
for (i=FormName.s2.length-1;i>=0;i--)
FormName.s2.remove(i)
//清空原先s3下啦框选项
for (i=FormName.s3.length-1;i>=0;i--)
FormName.s3.remove(i)
FormName.s2.options[0]=new Option("请选择省份","");
//根据数据库值重新填充s2
for (i=1;i<=j;i++)
{
FormName.s2.options[i]=new Option(com.childNodes[i-1].getAttribute("D"),com.childNodes[i-1].getAttribute("V"));
}
FormName.s2.selectedIndex=0;
}else{
//清空原先s3下啦框选项
for (i=FormName.s2.length-1;i>=0;i--)
FormName.s2.remove(i)
//清空原先s3下啦框选项
for (i=FormName.s3.length-1;i>=0;i--)
FormName.s3.remove(i)
FormName.s2.options[0]=new Option("请选择省份","");
FormName.s2.selectedIndex=0;
}
}
</script>function c2()
{
//功能:更据s2的值从数据库中读取s3的值
var i,j
var trade_code
var xmlDoc = new ActiveXObject("Msxml.DOMDocument");
trade_code=FormName.s2.value;//你选择的省份
if(trade_code.length>0){
xmlDoc.async = false;
xmlDoc.load("b.asp?pid="+trade_code.toString());
//alert(xmlDoc.xml);
var com=xmlDoc.documentElement.childNodes[0];
//alert(trade_code);
j=com.childNodes.length;
//清空原先s3下啦框选项
for (i=FormName.s3.length-1;i>=0;i--)
FormName.s3.remove(i)
FormName.s3.options[0]=new Option("请选择市","");
//根据数据库值重新填充s2
for (i=1;i<=j;i++)
{
FormName.s3.options[i]=new Option(com.childNodes[i-1].getAttribute("D"),com.childNodes[i-1].getAttribute("V"));
}
FormName.s3.selectedIndex=0;
}else{
//清空原先s3下啦框选项
for (i=FormName.s3.length-1;i>=0;i--)
FormName.s3.remove(i)
FormName.s3.options[0]=new Option("请选择市","");
FormName.s3.selectedIndex=0;
}
}
</script>
b.asp的代码描述:
<?xml version="1.0" encoding="gb2312"?>
<%
'接受参数:pid根据pid读取字类数据
Dim pid
pid=request("pid")
if len(pid)=0 then pid=-1
on Error resume next
set rs=server.CreateObject ("ADODB.recordset")
szSql="select Dco_ID,Dco_Name from tDateCode where Dco_PID= "&pid&" order by Dco_Order"
rs.Open szSql,conn,1,1
%>
<U>
<C>
<%
'循环将数据读出
while not rs.EOF
%>
<R V="<%=rs("Dco_ID")%>" D="<%=rs("Dco_Name")%>"></R>
<%
rs.MoveNext
wend
rs.close
%>
</C>
</U>
给你一个参考