首先看我的代码。
<select multiple name='assign_to[]'>
<?
$result_10 = mysql_query("select * from login_users") or die(mysql_error());
while($row_10 = mysql_fetch_object($result_10))
{
echo "<option value=".$row_10->user_id.">".$row_10->username."</option>";
}
?>
</select>
我能够在提交页面时获得价值没有问题,但我的问题是:
当提交页面时,我正在重定向到同一页面,然后我希望在提交表单之前选择的选项将在提交页面后被选中。
在那里编写什么PHP代码。我为单一选择下拉的做法是:
<?
while($row_10 = mysql_fetch_object($result_10))
{
?>
<option <?=$row_10->user_id==$_POST['assign_to']?'selected':''?> value="<?=$row_10->user_id?>"><?=$row_10->username?></option>
<?
}
?>
希望你收到我的问题?
感谢!!!
答案 0 :(得分:2)
if(in_array($row_10->user_id,$_POST['assign_to'])){echo "selected"}else{echo ""}
由于你的$ _POST ['assign_to']是一个数组,我想这会有用。
或者您可以使用条件运算符:
<option <?= in_array($row_10->user_id,$_POST['assign_to']) ? 'selected' : ''?> value="<?=$row_10->user_id?>"><?=$row_10->username?></option>
答案 1 :(得分:1)
使用in_array
<option <?=$row_10->user_id=$_POST['assign_to']?'selected':''?> value="<?=$row_10->user_id?>"><?=$row_10->username?></option>
替换为
<option <?= (in_array($row_10->user_id,$_POST['assign_to'])) ? 'selected' : ''?> value="<?=$row_10->user_id?>"><?=$row_10->username?></option>
您将选择的值作为数组,因此请检查数组中是否存在该值。
答案 2 :(得分:1)
当您使用多个选择框时,您将在POST变量中收到值数组, 所以你需要检查该数组中是否存在该值而不是等于它
您可以尝试使用in_array函数,如下所示:
<?
while($row_10 = mysql_fetch_object($result_10))
{
?>
<option <?=in_array($row_10->user_id,$_POST['assign_to'])?'selected':''?> value="<?=$row_10->user_id?>"><?=$row_10->username?></option>
<?
}
?>