高手帮我做个多行三级联动的代码.用途:我用ASP做了一全销售开单,要实现多行选商品,
因为商品不能一件件开单给客户呀,如高手有别的方法实现我的用用途,教我一下,

解决方案 »

  1.   

    说具体一点,是不是三个都是多选呢? 比如A,B,C,是不是B里显示所有A选中的项的子项? C也一样?
      

  2.   

    <HTML>
    <HEAD>
    <TITLE> New Document </TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="">
    <META NAME="Keywords" CONTENT="">
    <META NAME="Description" CONTENT="">
    <style type="text/css">
    body{font-family:Courier New, Courier}
    select{font-size:8pt;font-family:Courier New, Courier}
    input{font-size:8pt;font-family:Courier New, Courier}
    </style>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    var sSele=new Array();
    sSele[0]=new Array('1','11','1');
    sSele[1]=new Array('2','22','1');
    sSele[2]=new Array('3','33','1');
    sSele[3]=new Array('4','44','1');
    sSele[4]=new Array('5','55','2');
    sSele[5]=new Array('6','66','2');
    sSele[6]=new Array('7','77','2');
    sSele[7]=new Array('8','88','2');
    //上面这段你从数据库取中类表的值,第一位是ID,第二位是NAME,第三位是所属大类的ID
    var sSele1=new Array();
    sSele1[0]=new Array('1','11','1');
    sSele1[1]=new Array('2','22','2');
    sSele1[2]=new Array('3','33','3');
    sSele1[3]=new Array('4','44','4');
    sSele1[4]=new Array('5','55','5');
    sSele1[5]=new Array('6','66','6');
    sSele1[6]=new Array('7','77','7');
    sSele1[7]=new Array('8','88','8');
    sSele1[8]=new Array('9','99','1');
    sSele1[9]=new Array('10','10','2');
    sSele1[10]=new Array('11','11','3');
    sSele1[11]=new Array('12','12','4');
    sSele1[12]=new Array('13','13','5');
    sSele1[13]=new Array('14','14','6');
    sSele1[14]=new Array('15','15','7');
    sSele1[15]=new Array('16','16','8');
    //上面这段你从数据库取小类表的值,第一位是ID,第二位是NAME,第三位是所属中类的ID//联动函数,type1为你所想操作的select的名字,pid为当前select的值,name为“请选择产品小类”这类你想设定操作select的默认值,sSelename为所操作select所用到那个数组function onChange(type1,pid,name,sSele,checkname)//这里加个checkname的参数,是本类的选定ID
    {
    ln = type1.options.length;
       while(ln--) {
        type1.options[ln] = null;
       }
    type1.add(new Option(name,"0"));
    for(i=0;i<sSele.length;i++)
    {
    if(sSele[i][2]==pid)

    if(sSele[i][0]==checkname)
        type1.add(new Option(sSele[i][1],sSele[i][0],true,'selected'));//这样写才行
    else
        type1.add(new Option(sSele[i][1],sSele[i][0]));}
    }
    }//呵呵,这个也是无限级联动下拉框了
    //-->
    </SCRIPT>
    </HEAD>
    <!--在BODY里加上onload来执行,                   这个1是传过来的大类ID,  这个3是传过来的中类ID,这个3也是,               这个3是传过来的小类ID,你分别用<%=fsort_id%><%=Sort_id%><%=Nsortid%>代替就行了-->
    <BODY BGCOLOR="#FFFFFF" onload="onChange(add1.sort,1,'请选择产品中类',sSele,3);onChange(add1.nsort,3,'请选择产品中类',sSele1,3);">
     <table width="100%" border="1" cellspacing="0" cellpadding="3" align="center" bordercolorlight="#ECEEE4" bordercolordark="#CCCABC"> 
      <tr> 
        <td width="100%" height="30" colspan="6" align="center" background="images/tablebg.gif"><b>产&nbsp;品&nbsp;信&nbsp;息&nbsp;管&nbsp;理</b></td>
      </tr>
     
      <form action="AddProduct" method="post" enctype="multipart/form-data" name="add1" onSubmit="return check();">
      <input type="hidden" name="id" value="<%=id%>"/>
      <tr>
        <td height="25" align="left">所属类别:&nbsp;
    <select size="1" name="fsort" onChange="javascipt:onChange(add1.sort,this.value,'请选择产品中类',sSele);" >
            <option  value="0">请选择产品大类</option>
                                      <option value = "1"  selected>1 </option>;
                                      <option value = "2" >2 </option>;
                         
          </select>
    &nbsp;&nbsp;<select size="1" name="sort"  onChange="javascipt:onChange(add1.nsort,this.value,'请选择产品小类',sSele1);">
       <option value="0" selected>请选择产品中类</option>
          </select>
    &nbsp;&nbsp;
    <select size="1" name="nsort">
       <option value="0" selected>请选择产品小类</option>
          </select>&nbsp;&nbsp;<span class="style1">*</span></td>
      </tr>
      </form>
     </table></BODY>
    </HTML>
      

  3.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>无标题文档</title>
    </head>
    <script>
    function an(){
      while(f.s2.length>0){
        f.s2.remove(0);
      }
      //l = f.s2.length ;
      //for (var i=0;i<l;i++){
      //  f.s2.remove(0);
      //}
      
      
      if(f.s1.value=="1"){
            newOpt=document.createElement("OPTION");
            newOpt.value="1";
            newOpt.text="1";
            f.s2.add(newOpt);
            newOpt=document.createElement("OPTION");
            newOpt.value="11";
            newOpt.text="11";
            f.s2.add(newOpt);
            newOpt=document.createElement("OPTION");
            newOpt.value="111";
            newOpt.text="111";
            f.s2.add(newOpt);
      }
      if(f.s1.value=="2"){
            newOpt=document.createElement("OPTION");
            newOpt.value="2";
            newOpt.text="2";
            f.s2.add(newOpt);
            newOpt=document.createElement("OPTION");
            newOpt.value="22";
            newOpt.text="22";
            f.s2.add(newOpt);
            newOpt=document.createElement("OPTION");
            newOpt.value="222";
            newOpt.text="222";
            f.s2.add(newOpt);
      }
      if(f.s1.value=="3"){
            newOpt=document.createElement("OPTION");
            newOpt.value="3";
            newOpt.text="3";
            f.s2.add(newOpt);
            newOpt=document.createElement("OPTION");
            newOpt.value="33";
            newOpt.text="33";
            f.s2.add(newOpt);
            newOpt=document.createElement("OPTION");
            newOpt.value="333";
            newOpt.text="333";
            f.s2.add(newOpt);
      }}
    </script>
    <body>
    <form name="f" method="post" action="">
      <select name="s1" onChange = "an()">
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
      </select>
      <select name="s2">
      <option value="1">1</option>
      <option value="11">11</option>
      <option value="111">111</option>
      </select>
      <select name="select">
      </select>
    </form>
    </body>
    </html>
      

  4.   

    http://www.cnblogs.com/xuanye/archive/2007/02/07/642827.html
    一个下拉联动控件的实现
      

  5.   

    <FORM name="isc">
    <table border="0" cellspacing="0" cellpadding="0">
      <tr align="center"> 
        <td nowrap height="11"> &nbsp;<select name="example" size="1" onChange="redirect(this.options.selectedIndex)">
    <option selected>---Select1-------------</option>
    <option>Webmaster Sites</option>
    <option>News Sites</option>
    </select><select name="stage2" size="1" onChange="redirect1(this.options.selectedIndex)">
    <option value=" " selected> </option>
    <option value=" " selected>---Select2--------------</option>
    <option value=" " selected>---Select2--------------</option>
    </select><select name="stage3" size="1" onChange="redirect2(this.options.selectedIndex)">
    <option value=" " selected> </option>
    <option value=" " selected>---Select3----------------</option>
    <option value=" " selected>---Select3----------------</option>
    </select><script>
    <!--/*
    Triple Combo Script Credit
    By Hamid Cheheltani/ Website Abstraction (http://www.wsabstract.com)
    Visit http://wsabstract.com for this and over 400+ other scripts
    */var groups=document.isc.example.options.length
    var group=new Array(groups)
    for (i=0; i<groups; i++)
    group[i]=new Array()group[0][0]=new Option("---Select2---"," ");group[1][0]=new Option("Now Select This One"," ");
    group[1][1]=new Option("JavaScript","47");
    group[1][2]=new Option("DHTML","46");
    group[1][3]=new Option("CGI","45");group[2][0]=new Option("Now Select This One"," ");
    group[2][1]=new Option("General News","115");
    group[2][2]=new Option("Technology News","116"); var temp=document.isc.stage2
    function redirect(x){
    for (m=temp.options.length-1;m>0;m--)
    temp.options[m]=null
    for (i=0;i<group[x].length;i++){
    temp.options[i]=new Option(group[x][i].text,group[x][i].value)
    }
    temp.options[0].selected=true
    redirect1(0)
    }var secondGroups=document.isc.stage2.options.length
    var secondGroup=new Array(groups)
    for (i=0; i<groups; i++)  {
    secondGroup[i]=new Array(group[i].length)
    for (j=0; j<group[i].length; j++)  {
    secondGroup[i][j]=new Array()  }}secondGroup[0][0][0]=new Option("---Select 3---"," ");
    secondGroup[1][0][0]=new Option("---Select 3---"," ");
    secondGroup[1][1][0]=new Option("Now Select This One"," ");
    secondGroup[1][1][1]=new Option("Website Abstraction","http://wsabstract.com");
    secondGroup[1][1][2]=new Option("JavaScript for the non programmer","http://webteacher.com/javascript/");
    secondGroup[1][1][3]=new Option("Java-Scripts.net","http://java-scripts.net");secondGroup[1][2][0]=new Option("Now Select This One"," ");
    secondGroup[1][2][1]=new Option("Dynamic Drive","http://www.dynamicdrive.com");
    secondGroup[1][2][2]=new Option("Beginner\'s Guide to DHTML","http://www.geocities.com/ResearchTriangle/Facility/4490/");
    secondGroup[1][2][3]=new Option("Web Coder","http://webcoder.com/");secondGroup[1][3][0]=new Option("Now Select This One"," ");
    secondGroup[1][3][1]=new Option("CGI Resources","http://www.cgi-resources.com");
    secondGroup[1][3][2]=new Option("Ada\'s Intro to CGI","http://adashimar.hypermart.net/");secondGroup[2][0][0]=new Option("---Select 3---"," ");
    secondGroup[2][1][0]=new Option("Now Select This One"," ");
    secondGroup[2][1][1]=new Option("CNN","http://www.cnn.com");
    secondGroup[2][1][2]=new Option("MSNBC","http://www.msnbc.com");
    secondGroup[2][1][3]=new Option("ABC News","http://www.abcnews.com");secondGroup[2][2][0]=new Option("Now Select A Page"," ");
    secondGroup[2][2][1]=new Option("News.com","http://www.news.com");
    secondGroup[2][2][2]=new Option("Wired","http://www.wired.com");var temp1=document.isc.stage3
    function redirect1(y){
    for (m=temp1.options.length-1;m>0;m--)
    temp1.options[m]=null
    for (i=0;i<secondGroup[document.isc.example.options.selectedIndex][y].length;i++){
    temp1.options[i]=new Option(secondGroup[document.isc.example.options.selectedIndex][y][i].text,secondGroup[document.isc.example.options.selectedIndex][y][i].value)
    }
    temp1.options[0].selected=true
    }function redirect2(z){
    window.location=temp1[z].value
    }//-->
    </script> </td>
      </tr>
    </table>
    </FORM>