我正在使用带有onchange = "this.form.submit()"
的选择框和带有php的表格,根据选择显示数据,好吧,它工作正常,但是当我选择一个选项并刷新页面时,selectbox始终显示为值第一个元素。我希望它显示我选择的元素。这是代码
<form action="#" >
<select name="proyect" id="proyect" onchange = "this.form.submit()">
<?php
$SQL = "SELECT id FROM categories ORDER BY nomCategories ASC";
$result = mysql_query($SQL);
while ($row = mysql_fetch_array($result)) {
?>
<option value="<?php echo $row["id"];?>"><?php echo $row["nomCategories"];?></option>
<?php
}
?>
谢谢!
答案 0 :(得分:0)
您应该与viewstate
中的ASP.NET
相同。为此,您应该将选定的索引发送到服务器。有一些方法可以:
创建<input type='hidden' ... />
并将所选索引设置为此隐藏输入的属性value
(请注意,必须在form
元素中创建此元素)
在此阶段,您可以按$_GET
或$_POST
检索索引
在页面呈现时,您可以将此索引设置为select box
的 UPDATE(详细)强>
将您的HTML和PHP代码更改为:
<form action="yourpage.php" method="POST" >
<input type="hidden" name="pindex" value="" />
<select name="proyect" id="proyect" onchange = "mysubmit(this.parentNode)">
<?php
$SQL = "SELECT id FROM categories ORDER BY nomCategories ASC";
$result = mysql_query($SQL);
while ($row = mysql_fetch_array($result)) {
?>
<option value="<?php echo $row["id"];?>"><?php echo $row["nomCategories"];?> </option>
<?php
}
?>
</select>
</form>
<script type='javascript'>
document.getElementById("proyect").selectedIndex =
<?php
if( isset( $_POST['pindex']))
echo $_POST['pindex'];
else
echo '0';
?>
function mysubmit(form)
{
document.getElementsByName("pindex")[0].value = document.getElementById("proyect").selectedIndex ;
form.submit()
}
</script>