select三级关联问题,就像省,市,县一样,并且都是从数据库读取出来,三个表!怎么关联 选一的时候,运行VBScript,提交一下,生出二,选二的时候,再提交, 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//CN"><HTML><HEAD><TITLE> Q2306615 </TITLE><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><META NAME="Generator" CONTENT="Microsoft Notepad"><META NAME="Author" CONTENT="Topmonkey"><META NAME="Description" CONTENT="Re: Q2306615"></HEAD><BODY bgcolor="#FFFFFF" leftmargin="0" topmargin="0"><SCRIPT LANGUAGE="JavaScript"><!-- var city = new Array(); city[0] = new Array('绍兴','丽水','衢州','金华','台州','舟山','湖州','嘉兴','温州','杭州'); city[1] = new Array('忻州','运城','临汾','离石','榆次','朔州','晋城','长治','大同','阳泉','太原'); city[2] = new Array('重庆'); city[3] = new Array('六盘水','兴义','铜仁','凯里','毕节','都匀','安顺','遵义','贵阳'); city[4] = new Array('信阳','河南周口','河南商丘','驻马店','河南南阳','三门峡','濮阳','河南漯河','鹤壁','河南焦作','许昌','平顶山','安阳','洛阳','新乡','开封','郑州'); city[5] = new Array('胥浦','宿迁','泰州','南通','淮安','南京','盐城','扬州','连云港','徐州','常州','镇江','无锡','苏州'); city[6] = new Array('固原','石嘴山','吴忠','银川'); city[7] = new Array('张家口','承德','廊坊','保定','沧州','衡水','邢台','邯郸','秦皇岛','唐山','石家庄'); city[8] = new Array('石河子','和田','阿克苏','喀什','哈密','巴州','博州','阿勒泰','塔城','伊犁','吐鲁番','昌吉','克拉玛依','乌鲁木齐'); city[9] = new Array('成都','凉山州','雅安地区','巴中地区','达州市','广安市','南充市','宜宾市','眉山市','遂宁市','广元市','绵阳市','内江市','乐山市','德阳市','泸州市','自贡市','攀枝花'); city[10] = new Array('莱芜','日照','东营','威海','滨州','德州','聊城','临沂','荷泽','济宁','潍坊','烟台','枣庄','泰安','淄博','济南'); city[11] = new Array('大兴安岭','黑河','绥化','七台河','伊春','双鸭山','鸡西','鹤岗','大庆','佳木斯','牡丹江','齐齐哈尔','哈尔滨'); city[12] = new Array('上海'); city[13] = new Array('天津'); city[14] = new Array('青海'); city[15] = new Array('海南'); city[16] = new Array('上饶','抚州','赣州','吉安','宜春','九江','鹰潭','新余','萍乡','景德镇','南昌'); city[17] = new Array('长春','松原','延边','白山','通化','白城','四平','辽源','吉林'); city[18] = new Array('厦门'); city[19] = new Array('大连'); city[20] = new Array('酒泉','武威','天水','金昌','白银','兰州','嘉峪关'); city[21] = new Array('北京'); city[22] = new Array('河池','玉林','百色','北海','柳州','梧州','桂林','南宁'); city[23] = new Array('宁波'); city[24] = new Array('龙岩','漳州','泉州','宁德','南平','莆田','三明','福州'); city[25] = new Array('葫芦岛','盘锦','朝阳','铁岭','辽阳','阜新','营口','锦州','丹东','本溪','抚顺','鞍山','沈阳'); city[26] = new Array('深圳'); city[27] = new Array('西安','榆林','延安','商洛','安康','汉中','渭南','咸阳','宝鸡','铜川'); city[28] = new Array('湘西自治州','怀化','娄底','益阳','郴州','永州','张家界','常德','岳阳','邵阳','衡阳','湘潭','株洲','长沙'); city[29] = new Array('广州','云浮','揭阳','清远','肇庆','茂名','湛江','阳江','佛山','江门','中山','东莞','汕尾','惠州','梅州','河源','韶关','潮州','汕头','珠海'); city[30] = new Array('青岛'); city[31] = new Array('宣城','池州','巢湖','六安','滁州','宿县','阜阳','黄山','安庆','铜陵','芜湖','马鞍山','淮北','淮南','蚌埠','合肥'); city[32] = new Array('阿盟','巴盟','伊盟','乌盟','锡盟','哲盟','兴安盟','呼盟','满洲里','赤峰','乌海','包头','呼和浩特'); city[33] = new Array('临沧','玉溪','楚雄','大理','中甸','怒江','丽江','德宏','保山','版纳','思茅','红河','文山','曲靖','昭通','昆明'); city[34] = new Array('咸宁','恩施','黄冈','荆州','孝感','鄂州','十堰','武汉','荆门','随州','襄樊','黄石');function provinceChange(pid){ if(pid == "noselected"){ selCity.selectedIndex = 0; delCity.length = 1; } else{ for(var i=0;i<city[pid].length;i++){ selCity.length = i + 2; selCity.options[i + 1].text = city[pid][i]; } }}//--></SCRIPT><SELECT name=selProvince onchange="provinceChange(this.value)"> <OPTION selected value=noselected nowrap>---请选择---</OPTION> <OPTION value=0 >浙江 </OPTION> <OPTION value=1 >山西 </OPTION> <OPTION value=2 >重庆 </OPTION> <OPTION value=3 >贵州 </OPTION> <OPTION value=4 >河南 </OPTION> <OPTION value=5 >江苏 </OPTION> <OPTION value=6 >宁夏 </OPTION> <OPTION value=7 >河北 </OPTION> <OPTION value=8 >新疆 </OPTION> <OPTION value=9 >四川 </OPTION> <OPTION value=10>山东 </OPTION> <OPTION value=11>黑龙江 </OPTION> <OPTION value=12>上海 </OPTION> <OPTION value=13>天津 </OPTION> <OPTION value=14>青海 </OPTION> <OPTION value=15>海南 </OPTION> <OPTION value=16>江西 </OPTION> <OPTION value=17>吉林 </OPTION> <OPTION value=18>厦门 </OPTION> <OPTION value=19>大连 </OPTION> <OPTION value=20>甘肃 </OPTION> <OPTION value=21>北京 </OPTION> <OPTION value=22>广西 </OPTION> <OPTION value=23>宁波 </OPTION> <OPTION value=24>福建 </OPTION> <OPTION value=25>辽宁 </OPTION> <OPTION value=26>深圳 </OPTION> <OPTION value=27>陕西 </OPTION> <OPTION value=28>湖南 </OPTION> <OPTION value=29>广东 </OPTION> <OPTION value=30>青岛 </OPTION> <OPTION value=31>安徽 </OPTION> <OPTION value=32>内蒙古 </OPTION> <OPTION value=33>云南 </OPTION> <OPTION value=34>湖北 </OPTION></SELECT>省<SELECT NAME="selCity"> <OPTION value=0>---请选择---</OPTION></SELECT></BODY></HTML> 我的想法:<select name="select1" onchange="javascript:change()">...<select name="select2" onchange="javascript:change()">...<select name="select3">...function change(){//读取数据,把下一级的<option>换调}这样不用每次把数据都读遍,我作国两个<select>的级联,三个可能要麻烦一点 to sx1123 你的想法很好,也正在是我的想得到,关关键是在change中怎么写呀,我对javascript中是初学!不过还是谢谢你 想法:通过IFRAME的REPLACE来更新SELECT的信息,在REPLACE中调用的ASP返回可以更新三个SELECT的JS. 如果大家有源代码能否贴出来或发给我,[email protected]分如果不够,我再加,拼了命也要把这个做出来呀,不然得炒了呀,55555555555555, 我只做了两级,其实三级.两级都是一样做<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title></title></head><body><SELECT name="Country" onchange="ChgCountry()"><OPTION SELECTED>-请选择国家-</OPTION><OPTION value="CHINA"> 中国</OPTION><OPTION value="US"> 美国</OPTION><OPTION value="ENG"> 英国</OPTION><OPTION value="JP"> 日本</OPTION></SELECT><SELECT name="City"><OPTION SELECTED>-请选择城市-</OPTION></SELECT></body></html><script language="JavaScript" type="text/JavaScript">var ChinaCity = new Array("安徽","澳门","北京","重庆","福建","甘肃","广东","广西","贵州","海南","河北","黑龙江","河南","湖北","湖南","江苏","江西","吉林","辽宁","内蒙古","宁夏","青海","陕西","山东","山西","上海","四川","台湾","天津","新疆","香港","西藏","云南","浙江");var UsCity = new Array("城市一","城市二","城市三","城市四");var EngCity = new Array("城市A","城市B","城市C","城市D");var JpCity = new Array("城市a","城市b","城市c","城市d");function ChgCountry() { var SelValue = ""; var SelSize = 0; var RightSel = window.City; var NewOption; var stCity = new Array(); for(var i=RightSel.length-1; i>=0; i--){ RightSel.remove(i); } SelValue = Country.options[Country.selectedIndex].value; if(SelValue == "CHINA") { stCity = ChinaCity; } else if(SelValue == "US") { stCity = UsCity; } else if(SelValue == "ENG") { stCity = EngCity; } else if(SelValue == "JP") { stCity = JpCity; } else if(SelValue == "") { NewOption = document.createElement("OPTION"); NewOption.text = "-请在左侧选择相应的国家-"; RightSel.add(NewOption); return; } SelSize = stCity.length; for(var i=0; i<SelSize; i++) { NewOption = document.createElement("OPTION"); NewOption.text = stCity[i]; RightSel.add(NewOption); }}</script> 大体思路如下:<div id="s1"><select name="select1">...</div><ifame id="fm"width=0 height=0></iframe>...<script language="vbscript">function change() document.frames("fm").location.replace("aaa.asp")end function</script>aaa.asp:<%'读数据库Dim strTempstrTemp="<select name='select1'><option value='"&rs("value")&"'>"&rs("value").....%><script language="vbscript"> parent.s1.innerHTML="<%=strTemp%>"</script><%response.end%> <%'-----------------连动菜单----------------------'----------------大类----------------------------dim rd,rdsqlset rd=server.CreateObject("adodb.recordset")rdsql="select * from cpfl"rd.open rdsql,conn,3,3dim dl(100,1)dim i1,count1count1=rd.recordcounti1=0while not rd.eofdl(i1,0)=rd("no")dl(i1,1)=rd("leibie")i1=i1+1rd.movenextwendrd.close()'----------小类-------------dim rx,rxsql,i2,count2set rx=server.CreateObject("adodb.recordset")rxsql="select * from cp"rx.open rxsql,conn,1,1count2=rx.recordcountdim xl(100,2)i2=0while not rx.eofxl(i2,0)=rx("no")xl(i2,1)=rx("mingcheng")xl(i2,2)=rx("leibie")i2=i2+1rx.movenextwendrx.close()%><script language="JavaScript">function initlb(){lb=new Array();<%for i=0 to count1-1%>lb[<%=i%>]=new Array();lb[<%=i%>][0]="<%=dl(i,0)%>"lb[<%=i%>][1]="<%=dl(i,1)%>"<%next%>}function initcp(){cp=new Array();<%for i=0 to count2-1%>cp[<%=i%>]=new Array();cp[<%=i%>][0]="<%=xl(i,0)%>"cp[<%=i%>][1]="<%=xl(i,1)%>"cp[<%=i%>][2]="<%=xl(i,2)%>"<%next%>}initlb()initcp()function changelb(){var selectleibie,i,j;for(i=document.all.form1.cpmingcheng.options.length-1;i>=0;--i){document.all.form1.cpmingcheng.options[i]=null;}selectleibie=document.all.cpleibie.options[document.all.cpleibie.selectedIndex].value;j=0;for(i=0;i<cp.length;i++){if (selectleibie==cp[i][2]){document.all.form1.cpmingcheng.options[j]=new Option(cp[i][1],cp[i][1]);++j;}}}</script>这只是两级的,表的长度具体修改dl()和xl()这两个数组,本人也是参考csdn上改写的 iframe 嵌套,如果获取当前最上面的地址 求助:在IE下用javascript删除dom节点与FF有啥不同? 关于数组取值的问题~~~~在线等待~~~~~~~~~~ 用js删除select中的所有项 在线等急 关于网页页签制作. 非Windows平台下如何用JS读取XML 再问select无法被层覆盖问题? 怎么样实现类似csdn社区上的社区导航兰的功能 使用<input type="file" >上传文件的时候,浏览器弹出access is denied 农民求救!!! 怎样让select控件能选择,但是灰色的就像disabled一样 用JS如何改变OBJECT的参数?
<HTML>
<HEAD>
<TITLE> Q2306615 </TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<META NAME="Generator" CONTENT="Microsoft Notepad">
<META NAME="Author" CONTENT="Topmonkey">
<META NAME="Description" CONTENT="Re: Q2306615">
</HEAD><BODY bgcolor="#FFFFFF" leftmargin="0" topmargin="0"><SCRIPT LANGUAGE="JavaScript">
<!--
var city = new Array();
city[0] = new Array('绍兴','丽水','衢州','金华','台州','舟山','湖州','嘉兴','温州','杭州');
city[1] = new Array('忻州','运城','临汾','离石','榆次','朔州','晋城','长治','大同','阳泉','太原');
city[2] = new Array('重庆');
city[3] = new Array('六盘水','兴义','铜仁','凯里','毕节','都匀','安顺','遵义','贵阳');
city[4] = new Array('信阳','河南周口','河南商丘','驻马店','河南南阳','三门峡','濮阳','河南漯河','鹤壁','河南焦作','许昌','平顶山','安阳','洛阳','新乡','开封','郑州');
city[5] = new Array('胥浦','宿迁','泰州','南通','淮安','南京','盐城','扬州','连云港','徐州','常州','镇江','无锡','苏州');
city[6] = new Array('固原','石嘴山','吴忠','银川');
city[7] = new Array('张家口','承德','廊坊','保定','沧州','衡水','邢台','邯郸','秦皇岛','唐山','石家庄');
city[8] = new Array('石河子','和田','阿克苏','喀什','哈密','巴州','博州','阿勒泰','塔城','伊犁','吐鲁番','昌吉','克拉玛依','乌鲁木齐');
city[9] = new Array('成都','凉山州','雅安地区','巴中地区','达州市','广安市','南充市','宜宾市','眉山市','遂宁市','广元市','绵阳市','内江市','乐山市','德阳市','泸州市','自贡市','攀枝花');
city[10] = new Array('莱芜','日照','东营','威海','滨州','德州','聊城','临沂','荷泽','济宁','潍坊','烟台','枣庄','泰安','淄博','济南');
city[11] = new Array('大兴安岭','黑河','绥化','七台河','伊春','双鸭山','鸡西','鹤岗','大庆','佳木斯','牡丹江','齐齐哈尔','哈尔滨');
city[12] = new Array('上海');
city[13] = new Array('天津');
city[14] = new Array('青海');
city[15] = new Array('海南');
city[16] = new Array('上饶','抚州','赣州','吉安','宜春','九江','鹰潭','新余','萍乡','景德镇','南昌');
city[17] = new Array('长春','松原','延边','白山','通化','白城','四平','辽源','吉林');
city[18] = new Array('厦门');
city[19] = new Array('大连');
city[20] = new Array('酒泉','武威','天水','金昌','白银','兰州','嘉峪关');
city[21] = new Array('北京');
city[22] = new Array('河池','玉林','百色','北海','柳州','梧州','桂林','南宁');
city[23] = new Array('宁波');
city[24] = new Array('龙岩','漳州','泉州','宁德','南平','莆田','三明','福州');
city[25] = new Array('葫芦岛','盘锦','朝阳','铁岭','辽阳','阜新','营口','锦州','丹东','本溪','抚顺','鞍山','沈阳');
city[26] = new Array('深圳');
city[27] = new Array('西安','榆林','延安','商洛','安康','汉中','渭南','咸阳','宝鸡','铜川');
city[28] = new Array('湘西自治州','怀化','娄底','益阳','郴州','永州','张家界','常德','岳阳','邵阳','衡阳','湘潭','株洲','长沙');
city[29] = new Array('广州','云浮','揭阳','清远','肇庆','茂名','湛江','阳江','佛山','江门','中山','东莞','汕尾','惠州','梅州','河源','韶关','潮州','汕头','珠海');
city[30] = new Array('青岛');
city[31] = new Array('宣城','池州','巢湖','六安','滁州','宿县','阜阳','黄山','安庆','铜陵','芜湖','马鞍山','淮北','淮南','蚌埠','合肥');
city[32] = new Array('阿盟','巴盟','伊盟','乌盟','锡盟','哲盟','兴安盟','呼盟','满洲里','赤峰','乌海','包头','呼和浩特');
city[33] = new Array('临沧','玉溪','楚雄','大理','中甸','怒江','丽江','德宏','保山','版纳','思茅','红河','文山','曲靖','昭通','昆明');
city[34] = new Array('咸宁','恩施','黄冈','荆州','孝感','鄂州','十堰','武汉','荆门','随州','襄樊','黄石');function provinceChange(pid){
if(pid == "noselected"){
selCity.selectedIndex = 0;
delCity.length = 1;
}
else{
for(var i=0;i<city[pid].length;i++){
selCity.length = i + 2;
selCity.options[i + 1].text = city[pid][i];
}
}
}
//-->
</SCRIPT><SELECT name=selProvince onchange="provinceChange(this.value)">
<OPTION selected value=noselected nowrap>---请选择---</OPTION>
<OPTION value=0 >浙江 </OPTION>
<OPTION value=1 >山西 </OPTION>
<OPTION value=2 >重庆 </OPTION>
<OPTION value=3 >贵州 </OPTION>
<OPTION value=4 >河南 </OPTION>
<OPTION value=5 >江苏 </OPTION>
<OPTION value=6 >宁夏 </OPTION>
<OPTION value=7 >河北 </OPTION>
<OPTION value=8 >新疆 </OPTION>
<OPTION value=9 >四川 </OPTION>
<OPTION value=10>山东 </OPTION>
<OPTION value=11>黑龙江 </OPTION>
<OPTION value=12>上海 </OPTION>
<OPTION value=13>天津 </OPTION>
<OPTION value=14>青海 </OPTION>
<OPTION value=15>海南 </OPTION>
<OPTION value=16>江西 </OPTION>
<OPTION value=17>吉林 </OPTION>
<OPTION value=18>厦门 </OPTION>
<OPTION value=19>大连 </OPTION>
<OPTION value=20>甘肃 </OPTION>
<OPTION value=21>北京 </OPTION>
<OPTION value=22>广西 </OPTION>
<OPTION value=23>宁波 </OPTION>
<OPTION value=24>福建 </OPTION>
<OPTION value=25>辽宁 </OPTION>
<OPTION value=26>深圳 </OPTION>
<OPTION value=27>陕西 </OPTION>
<OPTION value=28>湖南 </OPTION>
<OPTION value=29>广东 </OPTION>
<OPTION value=30>青岛 </OPTION>
<OPTION value=31>安徽 </OPTION>
<OPTION value=32>内蒙古 </OPTION>
<OPTION value=33>云南 </OPTION>
<OPTION value=34>湖北 </OPTION>
</SELECT>省<SELECT NAME="selCity">
<OPTION value=0>---请选择---</OPTION>
</SELECT></BODY>
</HTML>
<select name="select1" onchange="javascript:change()">...
<select name="select2" onchange="javascript:change()">...
<select name="select3">...
function change()
{
//读取数据,把下一级的<option>换调
}
这样不用每次把数据都读遍,我作国两个<select>的级联,三个可能要麻烦一点
你的想法很好,也正在是我的想得到,关关键是在change中怎么写呀,我对javascript中是初学!不过还是谢谢你
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title></title>
</head><body>
<SELECT name="Country" onchange="ChgCountry()">
<OPTION SELECTED>-请选择国家-</OPTION>
<OPTION value="CHINA"> 中国</OPTION>
<OPTION value="US"> 美国</OPTION>
<OPTION value="ENG"> 英国</OPTION>
<OPTION value="JP"> 日本</OPTION>
</SELECT>
<SELECT name="City">
<OPTION SELECTED>-请选择城市-</OPTION>
</SELECT>
</body>
</html>
<script language="JavaScript" type="text/JavaScript">
var ChinaCity = new Array("安徽","澳门","北京","重庆","福建","甘肃","广东","广西","贵州","海南","河北","黑龙江","河南","湖北","湖南","江苏","江西","吉林","辽宁","内蒙古","宁夏","青海","陕西","山东","山西","上海","四川","台湾","天津","新疆","香港","西藏","云南","浙江");
var UsCity = new Array("城市一","城市二","城市三","城市四");
var EngCity = new Array("城市A","城市B","城市C","城市D");
var JpCity = new Array("城市a","城市b","城市c","城市d");
function ChgCountry() {
var SelValue = "";
var SelSize = 0;
var RightSel = window.City;
var NewOption;
var stCity = new Array();
for(var i=RightSel.length-1; i>=0; i--){
RightSel.remove(i);
}
SelValue = Country.options[Country.selectedIndex].value;
if(SelValue == "CHINA") {
stCity = ChinaCity;
} else if(SelValue == "US") {
stCity = UsCity;
} else if(SelValue == "ENG") {
stCity = EngCity;
} else if(SelValue == "JP") {
stCity = JpCity;
} else if(SelValue == "") {
NewOption = document.createElement("OPTION");
NewOption.text = "-请在左侧选择相应的国家-";
RightSel.add(NewOption);
return;
}
SelSize = stCity.length;
for(var i=0; i<SelSize; i++) {
NewOption = document.createElement("OPTION");
NewOption.text = stCity[i];
RightSel.add(NewOption);
}}
</script>
<div id="s1"><select name="select1">...</div><ifame id="fm"width=0 height=0></iframe>
...
<script language="vbscript">
function change()
document.frames("fm").location.replace("aaa.asp")
end function
</script>aaa.asp:<%
'读数据库
Dim strTemp
strTemp="<select name='select1'><option value='"&rs("value")&"'>"&rs("value").....
%>
<script language="vbscript">
parent.s1.innerHTML="<%=strTemp%>"
</script>
<%
response.end
%>
'-----------------连动菜单----------------------
'----------------大类----------------------------
dim rd,rdsql
set rd=server.CreateObject("adodb.recordset")
rdsql="select * from cpfl"
rd.open rdsql,conn,3,3dim dl(100,1)
dim i1,count1
count1=rd.recordcount
i1=0
while not rd.eof
dl(i1,0)=rd("no")
dl(i1,1)=rd("leibie")
i1=i1+1
rd.movenext
wend
rd.close()
'----------小类-------------
dim rx,rxsql,i2,count2
set rx=server.CreateObject("adodb.recordset")
rxsql="select * from cp"
rx.open rxsql,conn,1,1
count2=rx.recordcount
dim xl(100,2)
i2=0
while not rx.eof
xl(i2,0)=rx("no")
xl(i2,1)=rx("mingcheng")
xl(i2,2)=rx("leibie")
i2=i2+1
rx.movenext
wend
rx.close()
%>
<script language="JavaScript">
function initlb()
{
lb=new Array();
<%for i=0 to count1-1%>
lb[<%=i%>]=new Array();
lb[<%=i%>][0]="<%=dl(i,0)%>"
lb[<%=i%>][1]="<%=dl(i,1)%>"
<%next%>
}
function initcp()
{
cp=new Array();
<%for i=0 to count2-1%>
cp[<%=i%>]=new Array();
cp[<%=i%>][0]="<%=xl(i,0)%>"
cp[<%=i%>][1]="<%=xl(i,1)%>"
cp[<%=i%>][2]="<%=xl(i,2)%>"
<%next%>
}
initlb()
initcp()
function changelb()
{
var selectleibie,i,j;
for(i=document.all.form1.cpmingcheng.options.length-1;i>=0;--i)
{
document.all.form1.cpmingcheng.options[i]=null;
}
selectleibie=document.all.cpleibie.options[document.all.cpleibie.selectedIndex].value;j=0;for(i=0;i<cp.length;i++)
{if (selectleibie==cp[i][2])
{
document.all.form1.cpmingcheng.options[j]=new Option(cp[i][1],cp[i][1]);
++j;
}
}
}</script>
这只是两级的,表的长度具体修改dl()和xl()这两个数组,本人也是参考csdn上改写的