郁闷!写的二级连动菜单不起作用.大家帮忙改一下
qlwqz 2003-08-21 10:15:42 <html>
<head>
<%
dim conn
set conn=Server.CreateObject("ADODB.Connection")
conn.connectionstring="driver={Microsoft Access Driver (*.mdb)};"&"DBQ="&Server.MapPath("fh&wqz.mdb")
%>
<title>无标题文档</title>
</head>
<body>
<form action="asd.asp" method="get" name="Layer">
选者一级目录:
<select name = "LayerOne" onChange="changelocation(document.Layer.LayerOne.options[document.Layer.LayerOne.selectedIndex].value)">
<%
conn.open
dim sql
sql = "select * from LayerOne"
dim rs
set rs = server.createobject("adodb.recordset")
rs.open sql,conn,1,3
if rs.eof and rs.bof then
response.write "<option value = "" name = LayerOne>(没有类别)</option>"
else
do while not rs.eof%>
<option value="<%=cstr(rs("TypeOne"))%>" name = LayerOne><% = rs("name")%></option>
<%rs.movenext
loop
end if
%>
</select>
选者二级目录:
<select name="LayerTwo" size="1">
<%
rs.close
sql = "select * from LayerTwo"
rs.open sql,conn,1,3
if rs.eof and rs.bof then
resposne.write "<option value = "" name = LayerTwo>(没有类别)</option>"
else
do while not rs.eof %>
<option value = "<% =cstr(rs("TypeTwo"))%>" name = LayerTwo><%=rs("name")%></option>
<%rs.movenext
loop
end if%>
</select>
<%rs.close
sql = "select * from LayerTwo order by TypeOne"
rs.open sql,conn,0,1
%>
<script language="javascript">
var mylayer = new Array();
<%dim count
count = 0
do while not rs.eof %>
mylayer[<%= count%>] = new array("<%= rs("TypeOne")%>","<% = rs("TypeTwo")%>","<%= rs("name")%>");
<%count = count + 1
rs.movenext
loop
rs.close
conn.close
%>
var jscount = <% =count%>;
function changelocation(layerone)
{
document.frmAnnounce.Nclassid.length = 0;
var layerone = layerone;
var i;
for i = 0 to jscount
{
if(malayer[i][0] = layerone)
{
alert("sada");
document.Layer.LayerOne.options[document.Layer.LayerOne.length]
= new Option(mylayer[i][1], mylayer[i][2]);
}
}
}
</script>
<%
set rs = nothing
set conn = nothing
%>
</form>
</body>
</html>
没有连动的效果,对一级下拉框改变时二级下拉框没有变化.始终是把全部列出来.
如果哪位大哥有兴趣可以把数据库给发过去.