日期:2014-05-17  浏览次数:21106 次

在线等,asp+数据库下拉菜单3集联动
分别有三个表;企业管辖表,设备表,设备参数表;
企业管辖表找到地区,设备表中选择该地区设备编号,按编号对应的设备型号在设备参数表中取各种参数显示
脚本asp,数据库access,

------解决方案--------------------
<%
'例子中是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的名称
%>
<!-- 三级联动菜单 开始 -->
<script language="JavaScript">
<!--
<%
//二级数据保存到数组
Dim count2,rsClass2,sqlClass2
set rsClass2=server.createobject("adodb.recordset")
sqlClass2="select * from Fzwlt_Class" 
rsClass2.open sqlClass2,conn,1,1
%>
var subval2 = new Array();
//数组结构:一级根值,二级根值,二级显示值
<%
count2 = 0
do while not rsClass2.eof
%>
subval2[<%=count2%>] = new Array('<%=rsClass2("CategoriesID")%>','<%=rsClass2("ClassID")%>','<%=rsClass2("ClassName")%>')
<%
count2 = count2 + 1
rsClass2.movenext
loop
rsClass2.close
%>

<%
//三级数据保存到数组
Dim count3,rsClass3,sqlClass3
set rsClass3=server.createobject("adodb.recordset")
sqlClass3="select * from Fzwlt_Singer" 
rsClass3.open sqlClass3,conn,1,1
%>
var subval3 = new Array();
//数组结构:二级根值,三级根值,三级显示值
<%
count3 = 0
do while not rsClass3.eof
%>
subval3[<%=count3%>] = new Array('<%=rsClass3("ClassID")%>','<%=rsClass3("SingerID")%>','<%=rsClass3("SingerName")%>')
<%
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>

给你这断详细的,改一下数据库表单名就行了,