********************** (一) 打开记录集,创建数组,把记录集的值赋给数组. % Dim count set Rs=server.createobject("adodb.recordset") Sql = "select * from BookBoard order by ClassId desc" Rs.open Sql,cn,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("BoardName"))%>","%= trim(Rs("ClassId"))%>","%= trim(Rs("BoardId"))%>"); %count = count + 1 Rs.movenext loop Rs.close%> onecount=%=count%>; function changelocation(locationid) {document.form1.BoardId.length = 0; var locationid=locationid; var i; for (i=0;i onecount; i++) {if (subcat[i][1] == locationid) {document.form1.BoardId.options[document.form1.BoardId.length] = new Option(subcat[i][0], subcat[i][2]); }}} /script> ********************** (二) 显示分组,并编写列表框的OnChange事件. %set Rs=server.CreateObject("adodb.recordset") Sql="select * from BookClass order by ClassId desc" Rs.open Sql,cn,1,1 if Rs.eof and Rs.bof then response.write "请先添加总类。" response.end else%> select name="ClassId" onChange="changelocation(document.form1.ClassId.options[document.form1.ClassId.selectedIndex].value)"> option selected value="">==请选择大类==/option> % do until Rs.eof%> option value="%=trim(Rs("ClassId"))%>">%=trim(Rs("ClassName"))%>/option> %Rs.movenext loop end if Rs.close set Rs = nothing%> /select> select name="BoardId">option selected value="">==请选择小类==/option> /select>