一种是用层来实现,第二种是把第二个菜单的内容放在javascript的一个数组中,根据第一个下拉菜单的选择,来动态生成第二个菜单的选项

解决方案 »

  1.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> New Document </TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="">
    <META NAME="Keywords" CONTENT="">
    <META NAME="Description" CONTENT="">
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function dep(depID,depName,braID){
    this.ID = depID;
    this.Name = depName;
    this.braID = braID;
    }
    function bra(braID,braName){
    this.ID = braID;
    this.Name = braName;
    this.Depts = new Array();
    }
    var braLst = new Array();
    var depLst = new Array();
    braLst[0] = new bra(1,"红地");
    braLst[1] = new bra(2,"凯德");
    depLst[0] = new dep(1,"行政部",1);
    depLst[1] = new dep(2,"开发部",1);
    depLst[2] = new dep(3,"市场部",1);
    depLst[3] = new dep(4,"投资部",2);
    depLst[4] = new dep(5,"证券部",2);
    depLst[5] = new dep(3,"市场部",2);
    for (var i=0;i<depLst.length;i++){
    for (var j=0;j<braLst.length;j++){
    if ( depLst[i].braID==braLst[j].ID){
    braLst[j].Depts[braLst[j].Depts.length] = depLst[i];
    }
    }
    }
    function getDepts(braID){
    var braObj = null;
    for (var i=0;i<braLst.length;i++){
    if (braLst[i].ID == braID) {
    braObj = braLst[i];
    break;
    }
    }
    document.thisForm.depSel.options.length=0;
    if (braObj != null){
    for (var i=0;i<braObj.Depts.length;i++){
    var tmp;
    tmp = new Option(braObj.Depts[i].Name,braObj.Depts[i].ID);
    document.thisForm.depSel.options[document.thisForm.depSel.options.length] = tmp
    }
    }
    }
    //-->
    </SCRIPT>
    </HEAD>
    <FORM METHOD=POST ACTION="" name="thisForm">
    <SELECT NAME="braSel" onchange="getDepts(this.value);">
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    for (var i=0;i<braLst.length;i++){
    document.write("<option value=\"" + braLst[i].ID + "\">" + braLst[i].Name + "</option>");
    }
    //-->
    </SCRIPT>
    </SELECT>
    <SELECT NAME="depSel"></SELECT>
    </FORM>
    <BODY></BODY>
    </HTML>
      

  2.   


    wa sigzh_seagull(不可):
    你很了不得。我試了你的,行!還有什麼好的界面操作,和表達的方法,拿出來學學 。
      

  3.   

    XML 版的..... [收自 js 版某位老大]<select name=year></select>
    <select name=month></select>
    <select name=date></select>
    <select name=clock></select>
    <input name=result><script>
    var arrSel=["year","month","date","clock"];//arrSel定义了要修改的下拉框和xml数据的节点名称
    </script><xml id=xmldata>
    <xmldata>
    <year value="2000">
    <month value="4">
    <date value="14">
    <clock value="一点" />
    <clock value="三点" />
    </date>
    <date value="17">
    <clock value="一点" />
    </date>
    </month>
    <month value="5">
    <date value="15">
    <clock value="一点" />
    <clock value="四点" />
    <clock value="七点" />
    </date>
    </month>
    </year>
    <year value="2001">
    <month value="7">
    <date value="16">
    <clock value="一点" />
    <clock value="五点" />
    <clock value="九点" />
    </date>
    </month>
    </year>
    </xmldata>
    </xml><script>
    function qswhXml(num){
    /******* by qiushuiwuhen(2002-5-17) ********/
    var i,j,arrTemp=[];
    for(i=0;i<num;i++)arrTemp[i]=document.all(arrSel[i]).options[document.all(arrSel[i]).selectedIndex].text
    if(num==arrSel.length){//这里处理最后的数据。
    document.all("result").value="选中了("+arrTemp+")";return;
    }
    with(document.all(arrSel[num])){
    length=0
    var obj=document.all.xmldata.XMLDocument.childNodes[0];
    for(i=0;i<num;i++)obj=obj.selectSingleNode(arrSel[i]+'[@value="'+arrTemp[i]+'"]');
    for(i=0;i<obj.childNodes.length;i++)options[length++].text=obj.childNodes[i].getAttribute("value");
    onchange=new Function("qswhXml("+(num+1)+")");
    onchange();
    }
    }
    qswhXml(0);
    </script> 
     
      

  4.   

    tmj(革命者)
    太夸奖了,大家互相学习
      

  5.   

    我忘了说一点,我的两个下拉列表的数据都是从MYSQL数据库读取的
      

  6.   

    http://expert.csdn.net/Expert/topic/624/624703.xml?temp=.5870935随便找了一下就找到一个
      

  7.   

    以下是不是在服務端就把數據放入數組偉到客戶端,
    (http://expert.csdn.net/Expert/topic/624/624703.xml?temp=.5870935)這是一个关联数据库的动态select,仔细看看
    <form name="form1" method="post">
      <table width="400" cellspacing="0" cellpadding="0">
        <tr> 
          <td colspan="2" height="42"> 
            <div align="center">新增工作任務</div>
          </td>
        </tr>
        <tr> 
          <td width="25%">
            <div align="right">任務主題</div>
          </td>
          <td width="75%"> 
            <input type="text" name="contentname" size="35">
          </td>
        </tr>
        <tr> 
          <td width="25%"> 
            <div align="right">負責人</div>
          </td>
          <td width="75%">   
            <select name="depart" onchange="sel(form1.depart,IdArr,TextArr)">
            </select>
            <select name="userid" >
            </select>
          </td>
        </tr>
        <tr> 
          <td colspan="2" height="44"> 
            <div align="center"> 
              <input type="submit" name="submit" value="保存">
              <input type="button" name="Submit2" value="離開" onclick="self.close()">
            </div>
          </td>
        </tr>
      </table>
    </form>
    <?
    $R=mysql_query("select departid,departname from depart order by id");
    $Num=mysql_num_rows($R);
    echo "<script language=javascript>\n";
    echo "form1.depart.length=$Num;\n";
    echo "IdArr=new Array();\nTextArr=new Array();\n";
    $i=0;
    while($PArr=mysql_fetch_array($R)){
    echo "IdArr[$i]='$PArr[departid]';\n";
    echo "TextArr[$i]='$PArr[departname]';\n";
    echo "form1.depart.options[$i].value='$PArr[departid]';\n";
    echo "form1.depart.options[$i].text='$PArr[departname]';\n";
    echo "IdArr[$i]=new Array();\n";
    echo "TextArr[$i]=new Array();\n";
    $m=0;
    $SR=mysql_query("select userid,realname from user where department=$PArr[departid]");
    while($SArr=mysql_fetch_array($SR)){
    echo "IdArr[$i][$m]='$SArr[userid]';\n";
    echo "TextArr[$i][$m]='$SArr[realname]';\n";
    $m++;
    }
    $i++;
    }
    echo "</script>\n";
    ?>
    <script language=javascript>
    sel(form1.depart,IdArr,TextArr);
    function sel(select,IdArray,TextArray)
    {
    index=select.selectedIndex;
    form1.userid.length=IdArray[index].length;
    for (n=0;n<IdArray[index].length;n++)
    {
    var op=form1.userid.options[n];
    op.value=IdArray[index][n];
    op.text=TextArray[index][n];
    }
    }
    </script>