有三个表,要求联动,那位高手可以提供帮忙。

解决方案 »

  1.   

    <script language=javascript>
    var l1=new Array();//一级类别
    var vl1=new Array();//一级类别值
    var l2=new Array();//二级类别
    var vl2=new Array();//二级类别值
    var l3=new Array();//三级类别
    var vl3=new Array();//三级类别值
    function init(){
    <%
    dim l1,l2,l3
    i=0
    set l1=cn.execute("select * from skilltype where skillID=parentID")
    if not l1.eof then
    do while not l1.eof
    j=0
    %>
    l1[<%=i%>]="<%=trim(l1("skillName"))%>";
    vl1[<%=i%>]="<%=trim(l1("skillID"))%>";
    <%
    set l2=cn.execute("select * from skilltype  where parentID='"&trim(l1("skillID"))&"'and skillID<>'"&trim(l1("skillID"))&"'")
    if not l2.eof then 

    %>
    l2[<%=i%>]=new Array()
    vl2[<%=i%>]=new Array()
    l3[<%=i%>]=new Array()
    vl3[<%=i%>]=new Array()

    <%
    do while not l2.eof
    %>
    l2[<%=i%>][<%=j%>]="<%=trim(l2("skillName"))%>"
    vl2[<%=i%>][<%=j%>]="<%=trim(l2("skillID"))%>"
    <%
    k=0
    set l3=cn.execute("select * from skilltype  where  parentID='"&trim(l2("skillID"))&"'")
    if not l3.eof then%>

    l3[<%=i%>][<%=j%>]=new Array()
    vl3[<%=i%>][<%=j%>]=new Array()
    <%do while not l3.eof
    %>
    l3[<%=i%>][<%=j%>][<%=k%>]="<%=trim(l3("skillName"))%>"
    vl3[<%=i%>][<%=j%>][<%=k%>]="<%=trim(l3("skillID"))%>"
    <%
    k=k+1
    l3.movenext
    loop
    end if
    l3.close
    set l3=nothing%>
    <%
    j=j+1
    l2.movenext
    loop
    end if
    l2.close
    set l2=nothing
    i=i+1
    l1.movenext
    loop
    end if
    l1.close
    set l1=nothing
    %>

    if(l1.length >0){
    for(i=0;i<l1.length;i++)
    with(document.level_form.Level1)
    options[length]=new Option(l1[i],vl1[i])
    document.level_form.Level1.onchange=new Function("go2(this.selectedIndex)")
    }
    }function go2(sIndex){
    with(document.level_form.Level2){
    length=0;
    if(sIndex==0){
    document.level_form.Level2.options[0]=new Option("选择二级类别");
    go3("0","0");
    return;
    }
    document.level_form.Level2.options[length]=new Option("选择二级类别","");
    for(i=0;i<l2[sIndex-1].length;i++){
    document.level_form.Level2.options[length]=new Option(l2[sIndex-1][i],vl2[sIndex-1][i])
    document.level_form.Level2.onchange=new Function("go3(document.level_form.Level2.selectedIndex,document.level_form.Level1.selectedIndex)")
    }
    }
    }
    function go3(sIndex,flag){
    with(document.level_form.Level3){
    length=0;
    if((sIndex==0)||(flag==0)){
    options[0]=new Option("选择三级类别");
    return;
    }
    options[length]=new Option("选择三级类别","");
    for(i=0;i<l3[flag-1][sIndex-1].length;i++)
    options[length]=new Option(l3[flag-1][sIndex-1][i],vl3[flag-1][sIndex-1][i])
    }
    }
    window.onload=init</script>
    <table width="100%" align="left" class="normal">
                  <form name="level_form" method="post">
                    <tr> 
                      <td height="22"> <select name="Level1" class="textareastyle" id="Level1" onChange="return change_option(1)" language=javascript>
                          <option selected value="">选择一级类别</option>
                        </select> <select name="Level2" class="textareastyle" id="Level2" onChange="return change_option(2)" language=javascript>
                          <option selected value="">选择二级类别</option>
                        </select> <select name="Level3" class="textareastyle" id="Level3" onChange="return change_option(3)" language=javascript>
                          <option selected>选择三级类别</option>
                        </select> </td>
                    </tr>
                  </form>
    </table>
    不好意思,是asp版本,改成php应该很容易的 ^_^