我希望在下拉的onchange事件上提交表格时保留选定的下拉值。
这是我的代码
echo "<form method=\"post\">
<select name=\"Color\" OnChange=\"this.form.submit();\"> ";
while($rec=mysql_fetch_array($query))
{
$value = $rec['name'];
echo "<option value=\"$value\">$value</option>";
if($row['name'] == $_SESSION['name'])
echo " selected";
}
echo "</select> "?>
答案 0 :(得分:1)
您可能意味着,如果您提交表单但输入中存在错误,您希望保留所选选项。
然后,试试这个:
echo "<form method=\"post\">
<select name=\"Color\" OnChange=\"this.form.submit();\"> ";
while($rec=mysql_fetch_array($query)) {
$value = $rec['name'];
$selected = ( $value == $_SESSION['name'] ) ? ' selected' : '';
echo "<option value=\"$value\"$selected>$value</option>";
echo "</select> "?>
但我认为$_SESSION['name']
应为$_POST['name']
答案 1 :(得分:0)
首先,if($row['name'] == $_SESSION['name'])
//而不是$ row使用$ rec,因为你在mysql_fetch_array中使用。
<form method="post">
<select name="Color" OnChange="this.form.submit();">
<?
while($rec=mysql_fetch_array($query))
{
$value = $rec['name'];
?>
<option value="<?echo $value;?>" <?if($rec['name']==$_SESSION['name']){echo "selected;"}?>>$value</option>
<?}?>
</select>
</form>