急求一段特殊的★三级联动下拉框★的代码!!!!!【700分】!申请了7个ID来给分!!!!!! http://dotnet.aspx.cc/Exam/MultiSelect.zip下载http://sz.luohuedu.net/xml/Exam/MultiSelect.asp演示 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 第一个问题可参照如下<SCRIPT language="JavaScript">/* * fason */var DATA =[ ["text1"],["select1","select2"]];var S = [["测试11","测试22"],["测试AA","测试BB"]];function doChange(obj) {var index = obj.selectedIndex;for (var i=0; i<DATA.length;i++)V(obj.form, i, index);}function doChange2(obj) {var x = obj.selectedIndex;with(document.form1.elements["select2"]) {length = 0;for (var i=0;i<S[x].length;i++)options[length] = new Option(S[x][i],S[x][i]);}}function V(f, n, x) {for (var i=0; i<DATA[n].length;i++)f.elements[DATA[n][i]].style.display = n == x ? "" : "none";}window.onload = function(){ doChange(document.form1.elements["select0"])doChange2(document.form1.elements["select1"]) }</SCRIPT><form name="form1"><select name="select0" onchange="doChange(this)"><option>本部门</option><option>非本部门</option></select><input name="text1"><select name="select1" onchange="doChange2(this)"><option selected>测试1</option><option>测试2</option></select><select name="select2"></select></form> 或者<html><head><script language=javascript>var arr="浙江|江苏|安徽|江西";var arr0 = "杭州|宁波|温州|绍兴"; //这些数据可以从数据库中取得var arr1 = "南京|苏州|无锡|常州";var arr2 = "合肥|翕县|黄山|祁门";var arr3 = "南昌|九江|赣州|上饶"; var arr00 = "杭州A区|杭州B区"; var arr01 = "宁波A区|宁波B区"; var arr02 = "温州A区|温州B区"; var arr03 = "绍兴A区|绍兴B区"; var arr10 = "南京A区|南京B区"; var arr11 = "苏州A区|苏州B区"; var arr12 = "无锡A区|无锡B区"; var arr13 = "常州A区|常州B区"; var arr20 = "合肥A区|合肥B区"; var arr21 = "翕县A区|翕县B区"; var arr22 = "黄山A区|黄山B区"; var arr23 = "祁门A区|祁门B区"; var arr30 = "南昌A区|南昌B区"; var arr31 = "九江A区|九江B区"; var arr32 = "赣州A区|赣州B区"; var arr33 = "上饶A区|上饶B区"; //alert(eval("arr"+2+1));function AddOptions(dltObj,arrObj){dltObj.innerHTML="";var arrLocation=arrObj.split("|");for(var i=0;i<arrLocation.length;i++){var opt=document.createElement("OPTION");dltObj.add(opt);opt.value=i;opt.text=arrLocation[i];}}function init(){AddOptions(dltProvince,eval('arr'));AddOptions(dltCity,eval('arr'+dltProvince.selectedIndex));AddOptions(dltArea,eval('arr'+dltProvince.selectedIndex+dltCity.selectedIndex));}</script></head><body onLoad="init();"><table width="300" cellpading="0" cellspacing="0" border="0"><tr><td width="100"><select id="dltProvince" onchange="AddOptions(dltCity,eval('arr'+dltProvince.selectedIndex));AddOptions(dltArea,eval('arr'+dltProvince.selectedIndex+dltCity.selectedIndex));" style="width:100%"></select></td><td width="100"><select id="dltCity" onchange="AddOptions(dltArea,eval('arr'+dltProvince.selectedIndex+dltCity.selectedIndex));" style="width:100%"></select></td><td width="100"><select id="dltArea" style="width:100%"></select></td></tr></table></body></html> 第二个问题实例如下:首先你建立一个数据库"menu.mdb"在里面分别建立三个表,表一名称叫:"yj"里面字段为yjid 属性为[自动编号]yname 属性为[文本]表二名称叫"ej"里面字段为ejid 属性为[自动编号]ename 属性为[文本]yjid 属性为[数字]表二名称叫"sj"里面字段为sjid 属性为[自动编号]sname 属性为[文本]ejid 属性为[数字]yjid 属性为[数字]下面是维护一级菜单把下面代码保存成yj.asp<!--#include file="conn.asp"--><%name=Split(trim(Request.form("name")), ",")if request("name2")="" then%><html><head><title>无标题文档</title></head><body><table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td><form name="form" method="post" action="fl.asp"> <p> <textarea name="name" cols="60" rows="8" id="name"></textarea> </p> <p> <input type="submit" name="Submit" value="提交"> <input type="hidden" name="name2" value="2"></p> </form></td> </tr></table></body></html><%elseFor i=0 To UBound(name) set rs=server.CreateObject("adodb.recordset") rs.open"yj",Conn,1,3rs.addnewrs("yname")=trim(name(i))rs.updaters.closeset rs=nothingnextresponse.redirect"yj.asp"end if%>下面是维护二级菜单把下面代码保存成ej.asp<!--#include file="conn.asp"--><%name=Split(trim(Request.form("name")), ",")shen=request.form("shen")if shen="" then%><html><head><title>无标题文档</title></head><body><table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td height="31"><div align="center">| <a href="fl.asp">一级分类</a> | <a href="ejfl.asp">二级分类</a> | <a href="sjfl.asp">三级分类</a> | <a href="fjfl.asp">四级分类</a> | </div></td> </tr></table><table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td><form name="form" method="post" action="ejfl.asp"> <p> <select name="shen" id="yjid"><%set rs=server.CreateObject("adodb.recordset") rs.open"yj",Conn,1,3while not rs.eof%> <option value="<% =trim(rs("yid"))%>"><% =trim(rs("yname"))%></option> <% rs.movenext wend %> </select> </p> <p> <textarea name="name" cols="80" rows="10" id="name"></textarea> </p> <p> <input type="submit" name="Submit" value="提交"> </p> </form></td> </tr></table></body></html><%elseFor i=0 To UBound(name)set rs=server.CreateObject("adodb.recordset") rs.open"ej",Conn,1,3rs.addnewrs("ename")=trim(name(i))rs("yid")=shenrs.updaters.closeset rs=nothingnextresponse.redirect"ej.asp"end if%> 下面是维护三级菜单把下面代码保存成sj.asp<!--#include file="conn.asp"--><%name=Split(trim(Request.form("name")), ",")yjid=request.form("yjid")ejid=request.form("ejid")if yjid="" and ejid="" then%><html><head><title>无标题文档</title><% set rs18=server.CreateObject("adodb.recordset") '|rs18.open"sj",Conn,1,3 %> <script language = "JavaScript"><!--var onecount; onecount=0; subcat2 = new Array(); <% count = 0 do while not rs18.eof %> subcat2[<%=count%>] = new Array("<% =trim(rs18("sname"))%>","<% =trim(rs18("yid"))%>","<% =trim(rs18("sid"))%>"); <% count = count + 1 rs18.movenext loop rs18.close set rs18=nothing %> onecount=<%=count%>; function changelocation(yid) { document.myform.ejid.length = 0; var yid=yid; var i; document.myform.ejid.options[0] = new Option('选择类别',''); for (i=0;i < onecount; i++) { if (subcat2[i][1] == yid) { document.myform.ejid.options[document.myform.ejid.length] = new Option(subcat2[i][0], subcat2[i][2]); } } }//--></script></head><body><table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td height="31"><div align="center">| <a href="fl.asp">一级分类</a> | <a href="ejfl.asp">二级分类</a> | <a href="sjfl.asp">三级分类</a> | <a href="fjfl.asp">四级分类</a> | </div></td> </tr></table><table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td><form name="myform" method="post" action="sjfl.asp"> <p> <select name="yjid" onChange="changelocation(document.myform.yjid.options[document.myform.yjid.selectedIndex].value)" size="1"> <option>专业类别</option> <% set rs12=server.CreateObject("adodb.recordset")rs12.open"yj",conn,1,3 while not rs12.eof %> <option value="<% =rs12("yid")%>"> <% =rs12("yname")%> </option> <%rs12.movenext wend%> </select><select name="ejid" onChange="changelocation2(document.myform.ejid.options[document.myform.ejid.selectedIndex].value)" size="1"> <option selected></option> </select> </p> <p> <textarea name="name" cols="70" rows="20" id="name"></textarea> </p> <p> <input type="submit" name="Submit" value="提交"> </p> </form></td> </tr></table></body></html><%elseFor i=0 To UBound(name) set rs=server.CreateObject("adodb.recordset") rs.open"sj",Conn,1,3rs.addnewrs("yid")=yjidrs("eid")=ejidrs("sname")=trim(name(i))rs("time")=now()rs.updaters.closeset rs=nothingnextresponse.redirect"sj.asp"end if%>下面是数据库链接文件保存为conn.asp<%'on error resume next'dim conn,connstr,dbpath'更改数据库名字dbpath="menu.mdb"Set conn = Server.CreateObject("ADODB.Connection")connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(dbpath)'如果你的服务器采用较老版本Access驱动,请用下面连接方法'connstr="driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath(dbpath)conn.Open connstr%>最后是显示三级联动菜单代码把下面保存成ld.asp<!--#include file="conn.asp"--><%'----------------------------------------------------------------------------------set cityrs=server.createobject("ADODB.Recordset")citysql="select * from ej"cityrs.open citysql,conn,1,3'----------------------------------------------------------------------------------set cours=server.CreateObject("ADODB.Recordset")cousql="select * from sj"cours.open cousql,conn,1,3'----------------------------------------------------------------------------------%><script language="javascript">//县级目录var countycount;countycount=0;county=new Array();<%countys=0for i=0 to cours.recordcount%> county[<%=countys%>]=new Array("<%=trim(cours("sname"))%>","<%=trim(cours("eid"))%>","<%=trim(cours("yid"))%>","<%=trim(cours("sid"))%>")<%countys=countys+1cours.movenextif cours.eof then exit fornextcours.close%>countycount=<%=countys%>//以祖父级的ID和父亲ID来确定子孙//prosel:祖父ID(省级ID) citysel:父亲ID(市级ID)function changecounty(prosel,citysel){document.form.county.length=0;var prosel=prosel;var citysel=cityselfor (var j=0;j<countycount;j++) { if (county[j][2]==prosel && county[j][1]==citysel){ document.form.county.options[document.form.county.length]=new Option(county[j][0],county[j][3]) //changetown() } }}//市级目录var citycount;citycount=0city=new Array();<%citys=0for s=0 to cityrs.recordcount%> city[<%=citys%>]=new Array("<%=trim(cityrs("eid"))%>","<%=trim(cityrs("ename"))%>","<%=trim(cityrs("yid"))%>","<%=trim(cityrs("ename"))%>")<%citys=citys+1cityrs.movenextif cityrs.eof then exit fornextcityrs.close%>citycount=<%=citys%>//触发事件function changecity(prosel){document.form.city.length=0;var prosel=prosel; //得到祖父级ID(省级)//由祖父级ID来确定父亲级目录默认的ID;for (var l=0;l<citycount;l++) { if (city[l][2]==prosel){ var cityse; cityse=l; break; } } //由祖父级ID来确定父亲级的所有<option></option>选项的值for (var l=0;l<citycount;l++) { if (city[l][2]==prosel){ document.form.city.options[document.form.city.length]=new Option(city[l][3],city[l][0]) } }changecounty(prosel,city[cityse][0])}function checkdata(){//.....其他数据验证//.....//.....//由于city和county最后得到的值是ID,所以下面的操作是在提交的时候给便于取名字document.form.cityname.value=document.form.city.options[document.form.city.selectedIndex].valuedocument.form.countyname.value=document.form.county.options[document.form.county.selectedIndex].valuereturn true}</script><%set prors=server.CreateObject("ADODB.Recordset")prosql="select * from yj"prors.open prosql,conn,1,3%><form name="form" method="post" action="" ><select name="province" onChange="changecity(document.form.province.options[document.form.province.selectedIndex].value)" class="kuang" > <option value=""selected>选择一级分类</option> <option value="<%=trim(prors("yid"))%>"><%=trim(prors("yname"))%></option> <% dim proselect proselect=prors("yid") prors.movenext for i=0 to prors.recordcount %> <option value="<%=trim(prors("yid"))%>"><%=trim(prors("yname"))%></option> <% prors.movenext if prors.eof then exit for next %> </select><select name="city" onChange="changecounty(document.form.province.options[document.form.province.selectedIndex].value,document.form.city.options[document.form.city.selectedIndex].value)" class="kuang" > </select><input type="hidden" name="cityname" value=""><select name="county" class="kuang" > </select><input type="hidden" name="countyname" value=""></form><%'释放对象set cityrs=nothingset cours=nothingset prors=nothingset rs=nothing%>至此完成全部,不懂的再问我吧! 第二个问题,你也可以参照http://blog.csdn.net/xxrl/archive/2003/09/03/9950.aspx 第三个问题请参看如下地址:http://community.csdn.net/Expert/topic/3048/3048959.xml http://fason.nease.net/samples/select/ 中有说怎么用,下载文件中*.asp文件也应该有服务端代码示例 密码不可以复制js如何实现 错误: checkboxs[i] is undefined 一段日期代码的痛 请问access里的FIRST在SQL里怎么写? javaScript 怎么控制<iframe>标记? 如何用 vml 画一个圆形 和 长方形和 文字的输出!!!!!!!! 如果设置动态添加的单元格自动换行?在线等待!!! 请问如何在同个页面打开多个url 如何能在不按动键盘的情况下,自动检测出所以键的值!并显示出来! 哪裡可以找到javascript大全,想參考. 阿信大哥帮帮忙嘛 如何判断一个输入的url是否合法
/*
* fason
*/var DATA =[
["text1"],
["select1","select2"]
];var S = [["测试11","测试22"],["测试AA","测试BB"]];function doChange(obj) {
var index = obj.selectedIndex;
for (var i=0; i<DATA.length;i++)
V(obj.form, i, index);
}function doChange2(obj) {
var x = obj.selectedIndex;
with(document.form1.elements["select2"]) {
length = 0;
for (var i=0;i<S[x].length;i++)
options[length] = new Option(S[x][i],S[x][i]);
}
}function V(f, n, x) {
for (var i=0; i<DATA[n].length;i++)
f.elements[DATA[n][i]].style.display = n == x ? "" : "none";
}
window.onload = function(){
doChange(document.form1.elements["select0"])
doChange2(document.form1.elements["select1"])
}
</SCRIPT>
<form name="form1">
<select name="select0" onchange="doChange(this)">
<option>本部门</option>
<option>非本部门</option>
</select>
<input name="text1">
<select name="select1" onchange="doChange2(this)">
<option selected>测试1</option>
<option>测试2</option>
</select>
<select name="select2"></select>
</form>
<html>
<head>
<script language=javascript>
var arr="浙江|江苏|安徽|江西";var arr0 = "杭州|宁波|温州|绍兴"; //这些数据可以从数据库中取得
var arr1 = "南京|苏州|无锡|常州";
var arr2 = "合肥|翕县|黄山|祁门";
var arr3 = "南昌|九江|赣州|上饶"; var arr00 = "杭州A区|杭州B区";
var arr01 = "宁波A区|宁波B区";
var arr02 = "温州A区|温州B区";
var arr03 = "绍兴A区|绍兴B区"; var arr10 = "南京A区|南京B区";
var arr11 = "苏州A区|苏州B区";
var arr12 = "无锡A区|无锡B区";
var arr13 = "常州A区|常州B区"; var arr20 = "合肥A区|合肥B区";
var arr21 = "翕县A区|翕县B区";
var arr22 = "黄山A区|黄山B区";
var arr23 = "祁门A区|祁门B区"; var arr30 = "南昌A区|南昌B区";
var arr31 = "九江A区|九江B区";
var arr32 = "赣州A区|赣州B区";
var arr33 = "上饶A区|上饶B区"; //alert(eval("arr"+2+1));
function AddOptions(dltObj,arrObj)
{
dltObj.innerHTML="";
var arrLocation=arrObj.split("|");
for(var i=0;i<arrLocation.length;i++){
var opt=document.createElement("OPTION");
dltObj.add(opt);
opt.value=i;
opt.text=arrLocation[i];
}
}
function init(){
AddOptions(dltProvince,eval('arr'));
AddOptions(dltCity,eval('arr'+dltProvince.selectedIndex));
AddOptions(dltArea,eval('arr'+dltProvince.selectedIndex+dltCity.selectedIndex));
}
</script>
</head>
<body onLoad="init();">
<table width="300" cellpading="0" cellspacing="0" border="0">
<tr>
<td width="100"><select id="dltProvince" onchange="AddOptions(dltCity,eval('arr'+dltProvince.selectedIndex));AddOptions(dltArea,eval('arr'+dltProvince.selectedIndex+dltCity.selectedIndex));" style="width:100%"></select>
</td>
<td width="100"><select id="dltCity" onchange="AddOptions(dltArea,eval('arr'+dltProvince.selectedIndex+dltCity.selectedIndex));" style="width:100%"></select>
</td>
<td width="100"><select id="dltArea" style="width:100%"></select>
</td>
</tr>
</table>
</body>
</html>
首先你建立一个数据库"menu.mdb"
在里面分别建立三个表,
表一名称叫:"yj"
里面字段为
yjid 属性为[自动编号]
yname 属性为[文本]
表二名称叫"ej"
里面字段为
ejid 属性为[自动编号]
ename 属性为[文本]
yjid 属性为[数字]表二名称叫"sj"
里面字段为
sjid 属性为[自动编号]
sname 属性为[文本]
ejid 属性为[数字]
yjid 属性为[数字]下面是维护一级菜单
把下面代码保存成yj.asp
<!--#include file="conn.asp"-->
<%
name=Split(trim(Request.form("name")), ",")
if request("name2")="" then
%>
<html>
<head>
<title>无标题文档</title>
</head><body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><form name="form" method="post" action="fl.asp">
<p>
<textarea name="name" cols="60" rows="8" id="name"></textarea>
</p>
<p> <input type="submit" name="Submit" value="提交">
<input type="hidden" name="name2" value="2">
</p>
</form></td>
</tr>
</table>
</body>
</html>
<%
else
For i=0 To UBound(name)
set rs=server.CreateObject("adodb.recordset")
rs.open"yj",Conn,1,3
rs.addnew
rs("yname")=trim(name(i))
rs.update
rs.close
set rs=nothing
next
response.redirect"yj.asp"
end if
%>下面是维护二级菜单
把下面代码保存成ej.asp<!--#include file="conn.asp"-->
<%
name=Split(trim(Request.form("name")), ",")
shen=request.form("shen")
if shen="" then
%>
<html>
<head>
<title>无标题文档</title>
</head><body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="31"><div align="center">| <a href="fl.asp">一级分类</a> | <a href="ejfl.asp">二级分类</a> | <a href="sjfl.asp">三级分类</a> | <a href="fjfl.asp">四级分类</a> | </div></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><form name="form" method="post" action="ejfl.asp">
<p>
<select name="shen" id="yjid">
<%
set rs=server.CreateObject("adodb.recordset")
rs.open"yj",Conn,1,3
while not rs.eof
%>
<option value="<% =trim(rs("yid"))%>"><% =trim(rs("yname"))%></option>
<%
rs.movenext
wend
%>
</select>
</p>
<p>
<textarea name="name" cols="80" rows="10" id="name"></textarea>
</p>
<p> <input type="submit" name="Submit" value="提交">
</p>
</form></td>
</tr>
</table>
</body>
</html>
<%
else
For i=0 To UBound(name)
set rs=server.CreateObject("adodb.recordset")
rs.open"ej",Conn,1,3
rs.addnew
rs("ename")=trim(name(i))
rs("yid")=shen
rs.update
rs.close
set rs=nothing
next
response.redirect"ej.asp"
end if
%>
把下面代码保存成sj.asp<!--#include file="conn.asp"-->
<%
name=Split(trim(Request.form("name")), ",")
yjid=request.form("yjid")
ejid=request.form("ejid")
if yjid="" and ejid="" then
%>
<html>
<head>
<title>无标题文档</title>
<%
set rs18=server.CreateObject("adodb.recordset") '|
rs18.open"sj",Conn,1,3
%>
<script language = "JavaScript">
<!--
var onecount;
onecount=0;
subcat2 = new Array();
<%
count = 0
do while not rs18.eof
%>
subcat2[<%=count%>] = new Array("<% =trim(rs18("sname"))%>","<% =trim(rs18("yid"))%>","<% =trim(rs18("sid"))%>");
<%
count = count + 1
rs18.movenext
loop
rs18.close
set rs18=nothing
%>
onecount=<%=count%>; function changelocation(yid)
{
document.myform.ejid.length = 0; var yid=yid;
var i;
document.myform.ejid.options[0] = new Option('选择类别','');
for (i=0;i < onecount; i++)
{
if (subcat2[i][1] == yid)
{
document.myform.ejid.options[document.myform.ejid.length] = new Option(subcat2[i][0], subcat2[i][2]);
}
} }
//-->
</script>
</head><body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="31"><div align="center">| <a href="fl.asp">一级分类</a> | <a href="ejfl.asp">二级分类</a> | <a href="sjfl.asp">三级分类</a> | <a href="fjfl.asp">四级分类</a> | </div></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><form name="myform" method="post" action="sjfl.asp">
<p>
<select name="yjid" onChange="changelocation(document.myform.yjid.options[document.myform.yjid.selectedIndex].value)" size="1">
<option>专业类别</option>
<%
set rs12=server.CreateObject("adodb.recordset")
rs12.open"yj",conn,1,3
while not rs12.eof
%>
<option value="<% =rs12("yid")%>">
<% =rs12("yname")%>
</option>
<%
rs12.movenext
wend
%>
</select><select name="ejid" onChange="changelocation2(document.myform.ejid.options[document.myform.ejid.selectedIndex].value)" size="1">
<option selected></option>
</select>
</p>
<p>
<textarea name="name" cols="70" rows="20" id="name"></textarea>
</p>
<p> <input type="submit" name="Submit" value="提交">
</p>
</form></td>
</tr>
</table>
</body>
</html>
<%
else
For i=0 To UBound(name)
set rs=server.CreateObject("adodb.recordset")
rs.open"sj",Conn,1,3
rs.addnew
rs("yid")=yjid
rs("eid")=ejid
rs("sname")=trim(name(i))
rs("time")=now()
rs.update
rs.close
set rs=nothing
next
response.redirect"sj.asp"
end if
%>
下面是数据库链接文件
保存为conn.asp<%
'on error resume next
'dim conn,connstr,dbpath
'更改数据库名字
dbpath="menu.mdb"
Set conn = Server.CreateObject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(dbpath)
'如果你的服务器采用较老版本Access驱动,请用下面连接方法
'connstr="driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath(dbpath)
conn.Open connstr
%>最后是显示三级联动菜单代码
把下面保存成ld.asp
<!--#include file="conn.asp"--><%
'----------------------------------------------------------------------------------
set cityrs=server.createobject("ADODB.Recordset")
citysql="select * from ej"
cityrs.open citysql,conn,1,3
'----------------------------------------------------------------------------------
set cours=server.CreateObject("ADODB.Recordset")
cousql="select * from sj"
cours.open cousql,conn,1,3
'----------------------------------------------------------------------------------
%>
<script language="javascript">
//县级目录
var countycount;
countycount=0;
county=new Array();
<%
countys=0
for i=0 to cours.recordcount
%>
county[<%=countys%>]=new Array("<%=trim(cours("sname"))%>","<%=trim(cours("eid"))%>","<%=trim(cours("yid"))%>","<%=trim(cours("sid"))%>")
<%
countys=countys+1
cours.movenext
if cours.eof then exit for
next
cours.close
%>
countycount=<%=countys%>
//以祖父级的ID和父亲ID来确定子孙
//prosel:祖父ID(省级ID) citysel:父亲ID(市级ID)
function changecounty(prosel,citysel){
document.form.county.length=0;
var prosel=prosel;
var citysel=citysel
for (var j=0;j<countycount;j++)
{
if (county[j][2]==prosel && county[j][1]==citysel){
document.form.county.options[document.form.county.length]=new Option(county[j][0],county[j][3])
//changetown()
}
}
}//市级目录
var citycount;
citycount=0
city=new Array();
<%
citys=0
for s=0 to cityrs.recordcount
%>
city[<%=citys%>]=new Array("<%=trim(cityrs("eid"))%>","<%=trim(cityrs("ename"))%>","<%=trim(cityrs("yid"))%>","<%=trim(cityrs("ename"))%>")
<%
citys=citys+1
cityrs.movenext
if cityrs.eof then exit for
next
cityrs.close
%>
citycount=<%=citys%>//触发事件
function changecity(prosel)
{
document.form.city.length=0;
var prosel=prosel; //得到祖父级ID(省级)
//由祖父级ID来确定父亲级目录默认的ID;
for (var l=0;l<citycount;l++)
{
if (city[l][2]==prosel){
var cityse;
cityse=l;
break;
}
}
//由祖父级ID来确定父亲级的所有<option></option>选项的值
for (var l=0;l<citycount;l++)
{
if (city[l][2]==prosel){
document.form.city.options[document.form.city.length]=new Option(city[l][3],city[l][0])
}
}
changecounty(prosel,city[cityse][0])
}
function checkdata(){
//.....其他数据验证
//.....
//.....
//由于city和county最后得到的值是ID,所以下面的操作是在提交的时候给便于取名字
document.form.cityname.value=document.form.city.options[document.form.city.selectedIndex].value
document.form.countyname.value=document.form.county.options[document.form.county.selectedIndex].value
return true
}
</script>
<%
set prors=server.CreateObject("ADODB.Recordset")
prosql="select * from yj"
prors.open prosql,conn,1,3
%>
<form name="form" method="post" action="" >
<select name="province" onChange="changecity(document.form.province.options[document.form.province.selectedIndex].value)" class="kuang" >
<option value=""selected>选择一级分类</option>
<option value="<%=trim(prors("yid"))%>"><%=trim(prors("yname"))%></option>
<%
dim proselect
proselect=prors("yid")
prors.movenext
for i=0 to prors.recordcount
%>
<option value="<%=trim(prors("yid"))%>"><%=trim(prors("yname"))%></option>
<%
prors.movenext
if prors.eof then exit for
next
%>
</select>
<select name="city" onChange="changecounty(document.form.province.options[document.form.province.selectedIndex].value,document.form.city.options[document.form.city.selectedIndex].value)" class="kuang" >
</select><input type="hidden" name="cityname" value="">
<select name="county" class="kuang" >
</select><input type="hidden" name="countyname" value=""></form><%
'释放对象
set cityrs=nothing
set cours=nothing
set prors=nothing
set rs=nothing
%>至此完成全部,不懂的再问我吧!
http://blog.csdn.net/xxrl/archive/2003/09/03/9950.aspx
http://community.csdn.net/Expert/topic/3048/3048959.xml