主题:急!请教.
请教老师,为什么我的二级联动选择实现不了.
出现以下现象,选择左侧下拉框第一级大类后,应该在右侧的下拉框出现与其对应的二级类目,但现在这二级类目也出现在一级大类的下拉框中.WHY?
具体代码如下:
<title>添加新商品</title>
<%
dim count
set rs=server.createobject("adodb.recordset")
rs.open "select * from sorts order by categoryorder ",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("category"))%>","<%= rs("parentid")%>","<%= rs("categoryid")%>");
<%
count = count + 1
rs.movenext
loop
rs.close
%>
onecount=<%=count%>;
function changelocation(locationid)
{
document.myform.categoryid.length = 0;
var locationid=locationid;
var i;
for (i=0;i < onecount; i++)
{
if (subcat[i][1] == locationid)
{
document.myform.categoryid.options[document.myform.categoryid.length] = new Option(subcat[i][0], subcat[i][2]);
}
}
}
</script>
<table width="98%" border="0" align="center" cellpadding="0" cellspacing="1" BGCOLOR="#39867B">
<tr> <td BGCOLOR="#39867B" height="20" align="center"><font color="#FFFFFF">添加新商品</font></td></tr>
<tr>
<td bgcolor="#FFFFFF">
<form name="myform" method="post" action="saveaddpro.asp?action=add">
<table width="98%" border="0" align="center" cellpadding="2" cellspacing="0">
<tr>
<td width="5%">选择分类: </td>
<td> <%
rs.open "select * from category order by categoryorder",conn,1,1
if rs.eof and rs.bof then
response.write "请先添加商品大类。"
response.end
else
%> <select name="categoryid" size="1" id="categoryid" onChange="changelocation(document.myform.categoryid.options[document.myform.categoryid.selectedIndex].value)">
<option selected value="<%=rs("categoryid")%>"><%=trim(rs("category"))%></option>
<%
dim selclass
selclass=rs("categoryid")
rs.movenext
do while not rs.eof
%>
<option value="<%=rs("categoryid")%>"><%=trim(rs("category"))%></option>
<%
rs.movenext
loop
end if
rs.close
%>
</select>
小类:
<select name="sortsid">
<%rs.open "select * from sorts where parentid="&selclass ,conn,1,1
if not(rs.eof and rs.bof) then
%>
<option selected value="<%=rs("sortsid")%>"><%=rs("category")%></option>
<% rs.movenext
do while not rs.eof%>
<option value="<%=rs("sortsid")%>"><%=rs("category")%></option>
<% rs.movenext
loop
end if
rs.close
%>
</select> </td>
出现以下现象,选择左侧下拉框第一级大类后,应该在右侧的下拉框出现与其对应的二级类目,但现在这二级类目也出现在一级大类的下拉框中.WHY?
具体代码如下:
<title>添加新商品</title>
<%
dim count
set rs=server.createobject("adodb.recordset")
rs.open "select * from sorts order by categoryorder ",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("category"))%>","<%= rs("parentid")%>","<%= rs("categoryid")%>");
<%
count = count + 1
rs.movenext
loop
rs.close
%>
onecount=<%=count%>;
function changelocation(locationid)
{
document.myform.categoryid.length = 0;
var locationid=locationid;
var i;
for (i=0;i < onecount; i++)
{
if (subcat[i][1] == locationid)
{
document.myform.categoryid.options[document.myform.categoryid.length] = new Option(subcat[i][0], subcat[i][2]);
}
}
}
</script>
<table width="98%" border="0" align="center" cellpadding="0" cellspacing="1" BGCOLOR="#39867B">
<tr> <td BGCOLOR="#39867B" height="20" align="center"><font color="#FFFFFF">添加新商品</font></td></tr>
<tr>
<td bgcolor="#FFFFFF">
<form name="myform" method="post" action="saveaddpro.asp?action=add">
<table width="98%" border="0" align="center" cellpadding="2" cellspacing="0">
<tr>
<td width="5%">选择分类: </td>
<td> <%
rs.open "select * from category order by categoryorder",conn,1,1
if rs.eof and rs.bof then
response.write "请先添加商品大类。"
response.end
else
%> <select name="categoryid" size="1" id="categoryid" onChange="changelocation(document.myform.categoryid.options[document.myform.categoryid.selectedIndex].value)">
<option selected value="<%=rs("categoryid")%>"><%=trim(rs("category"))%></option>
<%
dim selclass
selclass=rs("categoryid")
rs.movenext
do while not rs.eof
%>
<option value="<%=rs("categoryid")%>"><%=trim(rs("category"))%></option>
<%
rs.movenext
loop
end if
rs.close
%>
</select>
小类:
<select name="sortsid">
<%rs.open "select * from sorts where parentid="&selclass ,conn,1,1
if not(rs.eof and rs.bof) then
%>
<option selected value="<%=rs("sortsid")%>"><%=rs("category")%></option>
<% rs.movenext
do while not rs.eof%>
<option value="<%=rs("sortsid")%>"><%=rs("category")%></option>
<% rs.movenext
loop
end if
rs.close
%>
</select> </td>