<body>
<form name="frm">
<select name=school ></select>
<select name=department ></select>
<select name=grade ></select>
<select name=student></select>
</form>
<script>
var arrSel=["school","department","grade","student"]
arrData=[];
<%
dim conn,rs
set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.mappath("test.mdb") & ";Persist Security Info=False"
set rs=conn.execute("select * from dbselect")
do while not rs.eof
%>
arrData[arrData.length]=["<%=trim(rs("school"))%>","<%=trim(rs("department"))%>","<%=trim(rs("grade"))%>","<%=trim(rs("student"))%>"]
<%
rs.movenext
loop
rs.close:set rs=nothing
conn.close:set conn=nothing
%>
</script>
<script>
function MulSelect(num){
        var i,j,arrTemp=[];
        for(i=0;i<num;i++)arrTemp=eval("document.frm."+arrSel).value
        if(num<arrSel.length)
        with(eval("document.frm."+arrSel[num])){
                length=0\*数组清空*\
                for(i=0;i<arrData.length;i++){
                        var find=false\*不知道这一个语句的作用*\
      for(j=0;j<num;j++)if(arrTemp[j]!=arrData[j])break;
                        if(j!=num) continue;\*不知道这一个语句的作用*\       for(m=0;m<options.length;m++)if(options[m].text==arrData[num]) find=true
    if(length==0||!find)
    {
    options[options.length]=new Option(arrData[num],arrData[num])
     }
                }
                MulSelect((num+1))
        }
}
MulSelect(0)
</script>
</body>
变量说明:
arrSel,  表单FORM的select 对象标示数组
arrData, 数据库有关字段的纪录("school","department","grade","student")
arrTemp, 收集当前选定的值,以后跟arrData 的比较
望看懂的人说说思路
(就是①怎么选择出有效的字段(当NUM=>3时候)
     ②另外当把字段赋值给OPTION数组(grade)时候,前面的已经选择的(例如school,department)会不会因为可选的数据(自己的OPTION数组)变了而没有(类似一刷新就重置!!!
     ③怎么给表单的第一个选择项选择适当的纪录("School")赋值到OPTION数组?