![]() |
#2
孤独冷雨2008-12-16 15:24
你老是问这个问题,还想带实例的,不知道你怎么想的!你用的是什么类型的数据库,怎样取出数据库库中各表以及各表的字段.给你一段自己修改一下:
<% set rs=server.createobject("adodb.recordset") rs.open"select * from class_two",conn,1,1 '三级联动下拉列表[数据库版] ‘---------以上是查询出第一级下拉列表的内容----- ’---------以下是用JS来控制程序-------------- %> <script language = "JavaScript"> var onecount; //定义onecount对像 onecount=0;//初始值为0 subcat = new Array(); //SUBCAT对像是一个新的数组 <% count = 0 '定义count对像初始值为0 do while not rs.eof '循环表头到表尾 %> subcat[<%=count%>] = new Array("<%=rs("class_two_text")%>","<%=trim(rs("class_one"))%>","<%=trim(rs("class_two"))%>"); //以上为重点内容,对像数组(subcat[count对像值])= 新数组内容('字段名0','字段名1','字段名2')记住要对应 <% count = count + 1 '循环count一次,COUNT的值加1 rs.movenext loop rs.close %> onecount=<%=count%>; function changelocation(locationid) { document.form.class_two.length = 0; var locationid=locationid; var i; for (i=0;i < onecount; i++) { if (subcat[1] == locationid) { document.form.class_two.options[document.form.class_two.length] = new Option(subcat[0], subcat[2]); } } } </script> <% set rs=server.CreateObject("adodb.recordset") rs.open "select * from Class_one" ,conn,1,1 if rs.eof then response.Write"暂无产品一类名称" else%> 产品一类 <select name="class_one" id="class_one" onChange="changelocation(document.form.class_one.options[document.form.class_one.selectedIndex].value)"> <%do while not rs.eof%> <option value="<%=rs("class_one")%>"><%=rs("class_one_text")%></option> <%rs.movenext loop end if %> </select> 产品二类 <select name="class_two" onChange="three(document.form.class_one.value,document.form.class_two.options[document.form.class_two.selectedIndex].value)"> <option value="请选择条件" selected>请选择条件</option> </select> <% set rs=server.createobject("adodb.recordset") rs.open"select * from class_three",conn,1,1 %> <script language = "JavaScript"> var twocount; twocount=0; subthree = new Array(); <% countb = 0 do while not rs.eof %> subthree[<%=countb%>] = new Array("<%=rs("class_three_text")%>","<%=trim(rs("class_one"))%>","<%=trim(rs("class_two"))%>","<%=trim(rs("class_three"))%>"); <% countb = countb + 1 rs.movenext loop rs.close %> twocount=<%=countb%>; function three(threeid,threeid2) { document.form.class_three.length = 0; var threeid=threeid; var threeid2=threeid2; var i; for (i=0;i < twocount; i++) { if ((subthree[1] == threeid) & (subthree[2] == threeid2)) { document.form.class_three.options[document.form.class_three.length] = new Option(subthree[0], subthree[3]); } } } </script> 产品三类 <select name="class_three" id="class_three"> <option value="0" selected>请选择条件</option> </select> |
求实例,从数据库里读出的三级联动菜单,是分别从三个表里读出来的,我无从下手的。