代码如下
<?php
echo"<form name='form1' method='POST' ><select name='sel' onChange='document.form1.submit();'>";
echo "<option>1</option>";
echo "<option>2</option>";
echo "<option>3</option>";
echo "</select></form>";
?>为什么无论选哪个option最后页面都会自动选择第一个option啊?
求解惑,谢谢selectonchange

解决方案 »

  1.   

    因为:onChange='document.form1.submit();造成你选择下拉框时表单触发了,等于刷新了本页。
      

  2.   

    把红色的去掉,你选择后,表单提交了,没有指定action就提交到当前页面,页面刷新再回来就没有了刚才选择的值了。<select name='sel' onChange='document.form1.submit();'>
      

  3.   

    sbumit提交了 等于重新刷新页面了。 你点击之后 就submit 完了显示的 就是重新刷新之后的页面 可定还是选择的是第一项。 你如果想保存的话 应该记录一下选择项 完了刷新的时候 默认选择加载记录项。
      

  4.   

    因为是要做一个联级的select,这个select选项一更改,另一个select也要相应更改,所以onchange不能删掉
      

  5.   

    嗯嗯,现在知道这个原因了,但是我重新加了selected,还是不行,显示的不是被selected的option
      

  6.   

    我改了一些代码,但是并没有显示被selected的那个option
    <?php
    echo"<form name='form1' method='POST' ><select name='sel' onChange='document.form1.submit()'>";
    for($i=0;$i<5;$i++){
    ?> <option value="<?php echo $i;?>" selected="<?php if($_POST['sel']==$i) echo 'selected';?>"><?php echo $i; ?></option>
    <?php
    }
    echo "</select></form>";
    ?>
      

  7.   

    onchange不能删掉,但是不要触发submit()。需要的话可以用ajax方式交互。
      

  8.   

    php是服务端语言,javascript是客户端语言,html是结合使用他们的地方。
    如果必须使用php等服务端语言实现,应该考虑在http请求中保存你的选项,并且在重新加载页面后恢复你保存的选项。
    其实我建议你还是要用客户端方法,这样的作业做出来更能眼前一亮,因为更加实际而且你懂得更多了。
      

  9.   

    echo"<form name='form1' method='POST' ><select name='sel' onChange='document.form1.submit()'>";
    for($i=0;$i<5;$i++){
    ?> <option value="<?php echo $i;?>" <?php if($_POST['sel']==$i) echo 'selected';?>><?php echo $i; ?></option>
    <?php
    }
    echo "</select></form>";