关于二级分类下拉菜单的写法
目前要写一个二级分类下拉菜单,大类和小类分别存于access表中,页面上有first select和second select两个下拉菜单,first select有onchange事件
目前用的代码:
<select name="first" onChange="MM_jumpMenu('parent',this,0)">
<%
sql = "select [大类名称],[大类id] from [大类]"
set rs = conn.execute(sql)'取得父类的ID及名称
if rs.eof or rs.bof then
response.write "<option>-----</option>" '如果没有记录,就显示-----
else
while not(rs.eof or rs.bof) '有记录,就将父名称列出来,形成下拉。
response.write ("<option value='?sec=" & rs(1) & "'")
if cstr(rs(0)) = request.querystring("sec") then
response.write "selected"
end if
response.write (">" & rs(0) & "</option>")
rs.movenext
wend
rs.movefirst '将游标移到第一条,以备下面之用。
end if
%>
</select>
<select name="second">
<%if rs.eof or rs.bof then
response.write ("<option>--------</option>")
else
if request.querystring("sec") = "" then '获取跳转之后的sec值
temp= rs(1) '如果为空,就把temp的值设为第一条记录的值
else
temp= request.querystring("sec") '否则就为收到的值
end if
subsql = "select [小类名称] from [小类] where 大类id='"&temp&"'"
set subrs = conn.execute(subsql) '列出一切资料为temp的记录
if subrs.eof or subrs.bof then
response.write ("<option>-----</option>")
'如果没有记录,则在这个列表中显示"-----"
else
while not(subrs.eof or subrs.bof)'否则就用循环列出一切符合条件的记录。
response.write ("<option value=" & subrs(0) & ">" & subrs(0) & "</option>")
subrs.movenext
wend
end if
javascript里面是:
function MM_jumpMenu(targ,selObj,restore){ //v3.0
if (restore)
{
selObj.selectedIndex=0;
}
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
}
但是每次触发onchange事件后,网页刷新一次,大类的下拉列表总是显示第一个选项,而不是触发事件前选定的选项。应该怎么改呢?类似csdn的二级分类下拉菜单是这样的思路吗?