请教各位高手,帮忙调试一下 二级联动菜单,非常感谢!
<%
dim sql
dim rs
dim count
set rs=server.createobject("adodb.recordset")
sql="select * from department order by departmentid asc"
rs.open sql,conn,1,1
%>
<script language="javascript">
<!--
var onecount;
onecount=0;
subcat = new Array();
<%
count = 0
do while not rs.eof
%>
subcat[<%=count%>] = new Array("<%= trim(rs("departmentname"))%>","<%= trim(rs("schoolid"))%>","<%= trim(rs("departmentid"))%>");
<%
count = count + 1
rs.movenext
loop
rs.close
%>
onecount=<%=count%>;//从专业表中建立数组
function changelocation(locationid)// 第一个select的响应事件
//将一级分类的value传给changelocation()函数,生成二级分类的列表
{
document.myform.subject.length = 0;
var locationid=locationid;
var i;
for (i=0;i < onecount; i++)
{
if (subcat[i][1] == locationid)
{
document.myform.subject.options[document.myform.subject.length] = new Option(subcat[i][0], subcat[i][2]);
}
}
}
//-->
</script>
//以下是在第一个select中,生成学校
<%
sql = "select * from school"
rs.open sql,conn,1,1
if rs.eof and rs.bof then
response.write "请先添加学校。"
response.end
else
%>
<select name="subject1" onChange="changelocation(document.myform.subject1.options[document.myform.subject1.selectedIndex].value)" size="1">
<option selected value="<%=trim(rs("schoolid"))%>"><%=trim(rs("schoolname"))%></option>
<% dim tempschoolid
tempschoolid=rs("schoolid")//把学校的id赋值给tempschool 为第二个select调用
rs.movenext
do while not rs.eof
%>
<option value="<%=trim(rs("schoolid"))%>"><%=trim(rs("schoolname"))%></option>
<%
rs.movenext
loop
end if
rs.close
%>
//以下为第二个select
<select name="subject">
<%sql="select * from department where schoolid="&tempschoolid//根据先前的赋值,查询专业
rs.open sql,conn,1,1
if not(rs.eof and rs.bof) then
%>
<option value="<%=rs("departmentid")%>"><%=rs("departmentname")%></option>
<% rs.movenext
do while not rs.eof%>
<option value="<%=rs("departmentid")%>"><%=rs("departmentname")%></option>
<% rs.movenext
loop
end if
rs.close
%>
</select>
请教各位高手,我现在存在的问题是,点击第一个鼠标,不能进行响应事件,如果第一个select中显示的学校为“清华大学”,第二个select中只出现清华大学的专业,但是下拉菜单后选择其他学校不能显示其他的学校的专业,就是这个问题比较难搞定,我看了几个类似的代码,就是不知道错误在哪里啊!