二级实现了,三级实现不了,思路一样,个人认为XMLHTTP做联动很方便,

解决方案 »

  1.   

    <!--#INCLUDE FILE="conn.inc" -->
    <html>
    <head>
    <title>...</title>
    <meta  http-equiv="Content-Type"  content="text/html;  charset=gb2312"><SCRIPT  LANGUAGE="JavaScript">
    <!--
    function  Dsy()
    {
    this.Items  =  {};
    }
    Dsy.prototype.add  =  function(id,iArray)
    {
    this.Items[id]  =  iArray;
    }
    Dsy.prototype.Exists  =  function(id)
    {
    if(typeof(this.Items[id])  ==  "undefined")  return  false;
    return  true;
    }function  change(v){
    var  str="0";
    for(i=0;i<v;i++){  str+=("_"+(document.getElementById(s[i]).selectedIndex-1));};
    var  ss=document.getElementById(s[v]);
    with(ss){
        length  =  0;
        options[0]=new  Option(opt0[v],opt0[v]);
        if(v  &&  document.getElementById(s[v-1]).selectedIndex>0  ||  !v)
        {
          if(dsy.Exists(str)){
            ar  =  dsy.Items[str];
            for(i=0;i<ar.length;i++)options[length]=new  Option(ar[i],ar[i]);
            if(v)options[1].selected  =  true;
          }
        }
        if(++v<s.length){change(v);}
    }
    }var  dsy  =  new  Dsy();
    <%
    set rs=server.createobject("adodb.recordset")
    sql = "select * from wplb"
    rs.open sql,conn,1,1
    i=0
    wplb=""
    do while not rs.eof 
    i=i+1
    if i<>1 then wplb=wplb&","
    wplb=wplb&""""&rs("wplb")&""""
    set rs1=server.createobject("adodb.recordset")
    sql = "select * from wpmc where wplb='"&rs("wplb")&"'"
    rs1.open sql,conn,1,1
    j=0
    wpmc=""
    do while not rs1.eof 
    j=j+1
    if j<>1 then wpmc=wpmc&","
    wpmc=wpmc&""""&rs1("wpmc")&""""
    k=0
    ggxh=""
    set rs2=server.createobject("adodb.recordset")
    sql = "select * from ggxh where wpmc='"&rs1("wpmc")&"'"
    rs2.open sql,conn,1,1
    do while not rs2.eof 
    k=k+1
    if k<>1 then ggxh=ggxh&","
    ggxh=ggxh&""""&rs2("ggxh")&""""
    rs2.movenext
    loop
    %>
    dsy.add("0_<%=i-1%>_<%=j-1%>",[<%=ggxh%>]);
    <%
    rs1.movenext
    loop
    %>
    dsy.add("0_<%=i-1%>",[<%=wpmc%>]);
    <%
    rs.movenext
    loop
    %>
    dsy.add("0",[<%=wplb%>]);dsy.add("0",[<%=wplb%>]);
    <%
    rs2.close
    rs.close
    rs1.close
    %>//-->
    </SCRIPT>
    <SCRIPT LANGUAGE="JavaScript">
    var  s=["s1","s2","s3"];
    var  opt0  =  ["类别","物品名称","规格型号"];
    function  setup()
    {
    for(i=0;i<s.length-1;i++)
        document.getElementById(s[i]).onchange=new  Function("change("+(i+1)+")");
    change(0);
    }
    //-->
    </SCRIPT>
    </head>
    <body  bgcolor="#E0E0E0"  onload="setup()">
    多级关联菜单:
    <form  name="frm">
    <select  id="s1"><option></option></select>
    <select  id="s2"><option></option></select>
    <select  id="s3"><option></option></select>
    </form>
    </body>
    </html>
    高手做的!!1
      

  2.   

    <!--#INCLUDE FILE="conn.inc" -->
    <html>
    <head>
    <title>...</title>
    <meta  http-equiv="Content-Type"  content="text/html;  charset=gb2312"><SCRIPT  LANGUAGE="JavaScript">
    <!--
    function  Dsy()
    {
    this.Items  =  {};
    }
    Dsy.prototype.add  =  function(id,iArray)
    {
    this.Items[id]  =  iArray;
    }
    Dsy.prototype.Exists  =  function(id)
    {
    if(typeof(this.Items[id])  ==  "undefined")  return  false;
    return  true;
    }function  change(v){
    var  str="0";
    for(i=0;i<v;i++){  str+=("_"+(document.getElementById(s[i]).selectedIndex-1));};
    var  ss=document.getElementById(s[v]);
    with(ss){
        length  =  0;
        options[0]=new  Option(opt0[v],opt0[v]);
        if(v  &&  document.getElementById(s[v-1]).selectedIndex>0  ||  !v)
        {
          if(dsy.Exists(str)){
            ar  =  dsy.Items[str];
            for(i=0;i<ar.length;i++)options[length]=new  Option(ar[i],ar[i]);
            if(v)options[1].selected  =  true;
          }
        }
        if(++v<s.length){change(v);}
    }
    }var  dsy  =  new  Dsy();
    <%
    set rs=server.createobject("adodb.recordset")
    sql = "select * from wplb"
    rs.open sql,conn,1,1
    i=0
    wplb=""
    do while not rs.eof 
    i=i+1
    if i<>1 then wplb=wplb&","
    wplb=wplb&""""&rs("wplb")&""""
    set rs1=server.createobject("adodb.recordset")
    sql = "select * from wpmc where wplb='"&rs("wplb")&"'"
    rs1.open sql,conn,1,1
    j=0
    wpmc=""
    do while not rs1.eof 
    j=j+1
    if j<>1 then wpmc=wpmc&","
    wpmc=wpmc&""""&rs1("wpmc")&""""
    k=0
    ggxh=""
    set rs2=server.createobject("adodb.recordset")
    sql = "select * from ggxh where wpmc='"&rs1("wpmc")&"'"
    rs2.open sql,conn,1,1
    do while not rs2.eof 
    k=k+1
    if k<>1 then ggxh=ggxh&","
    ggxh=ggxh&""""&rs2("ggxh")&""""
    rs2.movenext
    loop
    %>
    dsy.add("0_<%=i-1%>_<%=j-1%>",[<%=ggxh%>]);
    <%
    rs1.movenext
    loop
    %>
    dsy.add("0_<%=i-1%>",[<%=wpmc%>]);
    <%
    rs.movenext
    loop
    %>
    dsy.add("0",[<%=wplb%>]);dsy.add("0",[<%=wplb%>]);
    <%
    rs2.close
    rs.close
    rs1.close
    %>//-->
    </SCRIPT>
    <SCRIPT LANGUAGE="JavaScript">
    var  s=["s1","s2","s3"];
    var  opt0  =  ["类别","物品","型号"];
    function  setup()
    {
    for(i=0;i<s.length-1;i++)
        document.getElementById(s[i]).onchange=new  Function("change("+(i+1)+")");
    change(0);
    }
    //-->
    </SCRIPT>
    </head>
    <body  bgcolor="#E0E0E0"  onload="setup()">
    多级关联菜单:
    <form  name="frm">
    <select  id="s1"><option></option></select>
    <select  id="s2"><option></option></select>
    <select  id="s3"><option></option></select>
    </form>
    </body>
    </html>