ASP+数据库版的二级联动菜单- -
ASP+数据库版的二级联动菜单
数据表结构:
BigClass
BigClassID int 4 BigClassName varchar 50
SmallClass
SmallClassID int 4 SmallClassName varchar 50 BigClassID int 4
ASP中经常要用到联动菜单,把以前写的一个ASP+数据库版的二级联动的贴这里来,免得以后要用起来再重新去写了。
数据表结构:
BigClass
BigClassID int 4 BigClassName varchar 50
SmallClass
SmallClassID int 4 SmallClassName varchar 50 BigClassID int 4
以下是程序:<!--#include file="include/conn.asp"-->
<script language = "javascript">
var j;
j=0;
goaler = new Array();
<%set rs=conn.execute("select * from SmallClass order by SmallClassID")
if rs.eof then%>
goaler[0] = new Array("无分类","","");
<%else
i=0
do while not rs.eof%>
goaler[<%=i%>] = new Array("<%=rs("SmallClassName")%>","<%=rs("BigClassID")%>","<%=rs("SmallClassID")%>");
<%rs.movenext
i=i+1
loop
end if
rs.close
%>
j=<%=i%>;
function changelocation(locationid)
{
document.goalerform.SmallClassID.length = 0;
var locationid=locationid;
var i;
for (i=0;i < j; i++)
{
if (goaler[i][1] == locationid)
{
document.goalerform.SmallClassID.options[document.goalerform.SmallClassID.length] = new Option(goaler[i][0], goaler[i][2]);
}
}
}
</script>
<form method="post" name="goalerform" action="">
<select name="BigClassID" onChange="changelocation(document.goalerform.BigClassID.options[document.goalerform.BigClassID.selectedIndex].value)" size="1">
<%set rs=conn.execute("select * from BigClass order by BigClassID")
if rs.eof then%>
<option selected value="">无一级分类</option>
<%else%>
<option selected value="">请选择一级分类</option>
<%do while not rs.eof%>
<option value="<%=rs("BigClassID")%>"><%=rs("BigClassName")%></option>
<%rs.movenext
loop
end if%>
</select>
<select name="SmallClassID">
<option selected value="">未指定一级分类</option>
</select>
<input type="submit" name="goaler" value="提交">
</form>
<%'测试取值
if request("goaler")<>"" then
response.write "BigClassID="&request("BigClassID")&"<BR>SmallClassID="&request("SmallClassID")
end if%>