$x=mysql_connect($host,$username,$password);
$x1=mysql_select_db($database);
$query="select * from grade";
$result=mysql_query($query);
echo '    <select name="grade" onChange="document.form7.submit()">';
if ($grade<>"")
{ $gdcode=$grade;
}
while($row=mysql_fetch_array($result))
{
echo "      <option value=\"".$row["GRADE_CODE"]."\">".$row["GRADE_DESP"]."</option>";
}
?>
          <input type="text" name="textfield">
        </div>
      </form></td>
    <td>所在班级</td>
    <td><form name="form8" method="post" action="">
<?php
$query1="select * from class where grade_code=\"".$gdcode."\"";
$result1=mysql_query($query1);
echo "    <select name=\"class\">";
echo "    <option>请选择班级</option>";
while($row=mysql_fetch_array($result1))
{
echo "      <option value=\"".$row["CLASS_CODE"]."\">".$row["CLASS_DESP"]."</option>";
}
/*每次选完年级后列表总是跑到第一行记录上,而班级列表能够正常显示所选年级中的班级,怎样让年级列表选完之后显示所选的那一行而不是刷新?

解决方案 »

  1.   

    while($row=mysql_fetch_array($result))
    {
    echo "      <option value=\"".$row["GRADE_CODE"]."\">".$row["GRADE_DESP"]."</option>";
    }这段改成
    while($row=mysql_fetch_array($result))
    {
    echo "      <option value=\"".\"";
    if ($row["GRADE_CODE"] == $_POST["grade"]) echo " selected";
    echo ">".$row["GRADE_DESP"]."</option>";
    }
      

  2.   

    <?php
    $db=mysql_connect("localhost","root","");
    mysql_select_db("dev");
    $sql="select devid,cnum from device order by devid";
    $result=mysql_query($sql);
    ?>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>无标题文档</title>
    <script language="JavaScript">
    function dChange(inForm,selected)
    {
    var pos=0;
    var num=0;
    pos=selected.indexOf("*");
    num=num+selected.substring(pos+1,selected.length);
    num=parseInt(num,10)+1;
    /*定义与主下拉框关联的数组*/
    var arrSel=new Array(num);
    //arrSel[0]="('1','',true,true)";
    arrSel[0]="('-全部-','all',true,true)";
    for(var s=1;s<num;s++)
    arrSel[s]=eval("\"('"+(s)+"')\"");
    //将数组显示在子下拉框中
    while (arrSel.length < inForm.s2.options.length) {
    inForm.s2.options[(inForm.s2.options.length - 1)] = null;
    }
    for (var i=0; i < num; i++) {
    eval("inForm.s2.options[i]=" + "new Option" + arrSel[i]);
    }

    }

    </script>
    </head><body>
    <form name="form1" method="post" action="">
      <select name="s1"  onChange="dChange(document.form1,this.options[selectedIndex].value)">
        <option value="sel1" selected>-select-</option>
    <?php
    while($r=mysql_fetch_array($result))
    {
    $value=$r['devid']."*".$r['cnum'];
    echo "<option value=".$value.">".$r['devid']."</option>";
    }
    ?>
      </select>
      <select name="s2">
        <option value='sel2' selected>-select-</option>
      </select>
      <input type="submit" name="Submit" value="test">
    </form>
    </body>
    </html>
    此例为我测试用的一个例子:devid设备号,cnum设备的通道数。主下拉框显示各设备号,次下拉框根据所选择的设备号的通道数产生通道号(1~通道数)并显示出来。