页面开始的地方,判定是否已经调用过了,如果调用过了。
把两个select的内容都相应改变如果没有,就正常显示页面中,再写一个script函数,
如果select改变了值,就调用这个函数这个函数就是刷新页面,并把select的值传过去

解决方案 »

  1.   

    刚才想复杂了,如果显示不涉及数据库,那么直接用scrip,不用再循环调用了<script>
    function makechoise(form)
    {
        form.select2.value=form.select1.value;
    }
    </script>
    <form name=thisform><select name=select1 onchange="makechoise(thisform)">
         <option value=a>a</option>
         .....
    </select><select name=select2>
    <option value=a>a</option>
         .....
    </select></form>
      

  2.   

    這是我编的一个关联数据库的动态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>
      

  3.   

    <script language="javascript">
    <!--
    function InsertSle(val1,val2,sle)
    {
    var newsle=new Option(val1,val2);
    sle.add(newsle);
    }
    function DelSle(sle,indexsle)
    {
    sle.options[indexsle]=null;
    }
    function DelAll(sle)
    {
    var  mm;

    for (mm=sle.length;mm>=0;mm--)
    {
    DelSle(sle,mm);
    }

    }
    function DelAndIn(sle1,sle2)
    {
    for(i=0;i<sle1.length;i++)
    if(sle1.options[i].selected)
    {

    InsertSle(sle1.options[i].text,sle1.options[i].value,sle2);
    DelSle(sle1,i);
    return true;
    }
    return false;
    }
    function MoveAll(sle1,sle2)
    {
    var i=sle1.length-1;
    for(;i>=0;i--)
    {

    InsertSle(sle1.options[i].text,sle1.options[i].value,sle2);
    DelSle(sle1,i);
    }
    }
    //-->
    </script>