三级联动 学院 专业 班级 (这是三个表,用id号相互关联着) 三级联动 学院 专业 班级 (这是三个表,用id号相互关联着)初学者,谢谢!谢谢!用asp和javascript的.想了解具体思路..有代码注释最好.谢谢!谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 参见:Javascript实现的多级联动选择框EasyUS(union select) V1.0。支持静态数据与Ajax获取。支持每级联动和全部联动。最小单元格式:[ID,parentID,text] 例子中是asp+js实现的三级无刷新下拉列表,(这里还有[四级(多级)联动下拉菜单],这个和下面程序实现相比不够灵活 ) '肯定先要连接数据库了,不用说了 '数据库结构 '类别1表名称:a 字段:ID,Name 说明:ID为主键是类别1的ID值,Name为类别1的名称 '类别2表名称:aa 字段:ID,aID,Name 说明:ID为主键是类别2的ID值,aID为所属类别1的ID值,Name为类别2的名称 '类别3表名称:aaa 字段:ID,aID,aaID,Name 说明:ID为主键是类别3的ID值,aID为所属类别1的ID值,aaID为所属类别2的ID值,Name为类别3的名称 =====test1.asp 你可以测试下,接收到的都是类别的ID值==== <% response.write"1:"&Request.form("s1")&" <BR>" response.write"2:"&Request.form("s2")&" <BR>" response.write"3:"&Request.form("s3")&" <BR>" %> ========================================================= <!-- 三级联动菜单 开始 --> <script language="JavaScript"> <!-- <% '二级数据保存到数组 Dim count2,rsClass2,sqlClass2 set rsClass2=server.createobject("adodb.recordset") sqlClass2="select * from aa" rsClass2.open sqlClass2,conn,1,1 %> var subval2 = new Array(); //数组结构:一级根值,二级根值,二级显示值 <% count2 = 0 do while not rsClass2.eof %> subval2[ <%=count2%>] = new Array(' <%=rsClass2("aID")%>',' <%=rsClass2("ID")%>',' <%=rsClass2("Name")%>') <% count2 = count2 + 1 rsClass2.movenext loop rsClass2.close %> <% '三级数据保存到数组 Dim count3,rsClass3,sqlClass3 set rsClass3=server.createobject("adodb.recordset") sqlClass3="select * from aaa" rsClass3.open sqlClass3,conn,1,1 %> var subval3 = new Array(); //数组结构:二级根值,三级根值,三级显示值 <% count3 = 0 do while not rsClass3.eof %> subval3[ <%=count3%>] = new Array(' <%=rsClass3("aaID")%>',' <%=rsClass3("ID")%>',' <%=rsClass3("Name")%>') <% count3 = count3 + 1 rsClass3.movenext loop rsClass3.close %> function changeselect1(locationid) { document.form1.s2.length = 0; document.form1.s2.options[0] = new Option('==请选择类别==',''); document.form1.s3.length = 0; document.form1.s3.options[0] = new Option('==请选择专题==',''); for (i=0; i <subval2.length; i++) { if (subval2[i][0] == locationid) {document.form1.s2.options[document.form1.s2.length] = new Option(subval2[i][2],subval2[i][1]);} } } function changeselect2(locationid) { document.form1.s3.length = 0; document.form1.s3.options[0] = new Option('==请选择专题==',''); for (i=0; i <subval3.length; i++) { if (subval3[i][0] == locationid) {document.form1.s3.options[document.form1.s3.length] = new Option(subval3[i][2],subval3[i][1]);} } } //--> </script> <form name="form1" method="post" action="test1.asp"> 三级联动: <% Dim count1,rsClass1,sqlClass1 set rsClass1=server.createobject("adodb.recordset") sqlClass1="select * from a" rsClass1.open sqlClass1,conn,1,1 %> <select name="s1" onChange="changeselect1(this.value)"> <option>==请选择频道== </option> <% count1 = 0 do while not rsClass1.eof response.write" <option value="&rsClass1("ID")&">"&rsClass1("Name")&" </option>" count1 = count1 + 1 rsClass1.movenext loop rsClass1.close %> </select> <select name="s2" onChange="changeselect2(this.value)"> <option>==请选择类别== </option> </select> <select name="s3"> <option>==请选择专题== </option> </select> <input type="submit" name="Submit" value="提交"> </form> <!-- 三级联动菜单 结束 --> 为啥这几个js文件下载后全是乱码,但浏览器上正常! jquery arr.each(fn)=$.each(arr,fn) web中如何实现打印功能 MVC+Extjs使用Report js这个问题怎么解决!高手进来看看! firefox下读取xml节点文本 javascript的一个变量怎么传到一个XPath表达式中去? try到底是铺捉什么样的错误啊。 如何才能不提交? 怎样在本地读取网站空间里面的文件,然后把他写回本地? 有超过500种药物需要选择,界面怎么设计好 js如何获取frame里的excel
'肯定先要连接数据库了,不用说了
'数据库结构
'类别1表名称:a 字段:ID,Name 说明:ID为主键是类别1的ID值,Name为类别1的名称
'类别2表名称:aa 字段:ID,aID,Name 说明:ID为主键是类别2的ID值,aID为所属类别1的ID值,Name为类别2的名称
'类别3表名称:aaa 字段:ID,aID,aaID,Name 说明:ID为主键是类别3的ID值,aID为所属类别1的ID值,aaID为所属类别2的ID值,Name为类别3的名称 =====test1.asp 你可以测试下,接收到的都是类别的ID值====
<%
response.write"1:"&Request.form("s1")&" <BR>"
response.write"2:"&Request.form("s2")&" <BR>"
response.write"3:"&Request.form("s3")&" <BR>"
%> ========================================================= <!-- 三级联动菜单 开始 -->
<script language="JavaScript">
<!--
<%
'二级数据保存到数组
Dim count2,rsClass2,sqlClass2
set rsClass2=server.createobject("adodb.recordset")
sqlClass2="select * from aa"
rsClass2.open sqlClass2,conn,1,1
%>
var subval2 = new Array();
//数组结构:一级根值,二级根值,二级显示值
<%
count2 = 0
do while not rsClass2.eof
%>
subval2[ <%=count2%>] = new Array(' <%=rsClass2("aID")%>',' <%=rsClass2("ID")%>',' <%=rsClass2("Name")%>')
<%
count2 = count2 + 1
rsClass2.movenext
loop
rsClass2.close
%> <%
'三级数据保存到数组
Dim count3,rsClass3,sqlClass3
set rsClass3=server.createobject("adodb.recordset")
sqlClass3="select * from aaa"
rsClass3.open sqlClass3,conn,1,1
%>
var subval3 = new Array();
//数组结构:二级根值,三级根值,三级显示值
<%
count3 = 0
do while not rsClass3.eof
%>
subval3[ <%=count3%>] = new Array(' <%=rsClass3("aaID")%>',' <%=rsClass3("ID")%>',' <%=rsClass3("Name")%>')
<%
count3 = count3 + 1
rsClass3.movenext
loop
rsClass3.close
%> function changeselect1(locationid)
{
document.form1.s2.length = 0;
document.form1.s2.options[0] = new Option('==请选择类别==','');
document.form1.s3.length = 0;
document.form1.s3.options[0] = new Option('==请选择专题==','');
for (i=0; i <subval2.length; i++)
{
if (subval2[i][0] == locationid)
{document.form1.s2.options[document.form1.s2.length] = new Option(subval2[i][2],subval2[i][1]);}
}
} function changeselect2(locationid)
{
document.form1.s3.length = 0;
document.form1.s3.options[0] = new Option('==请选择专题==','');
for (i=0; i <subval3.length; i++)
{
if (subval3[i][0] == locationid)
{document.form1.s3.options[document.form1.s3.length] = new Option(subval3[i][2],subval3[i][1]);}
}
}
//-->
</script> <form name="form1" method="post" action="test1.asp"> 三级联动:
<%
Dim count1,rsClass1,sqlClass1
set rsClass1=server.createobject("adodb.recordset")
sqlClass1="select * from a"
rsClass1.open sqlClass1,conn,1,1
%>
<select name="s1" onChange="changeselect1(this.value)">
<option>==请选择频道== </option>
<%
count1 = 0
do while not rsClass1.eof
response.write" <option value="&rsClass1("ID")&">"&rsClass1("Name")&" </option>"
count1 = count1 + 1
rsClass1.movenext
loop
rsClass1.close
%>
</select> <select name="s2" onChange="changeselect2(this.value)">
<option>==请选择类别== </option>
</select> <select name="s3">
<option>==请选择专题== </option>
</select>
<input type="submit" name="Submit" value="提交"> </form> <!-- 三级联动菜单 结束 -->