1

首先看我的代码。

   <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>
<?
                    }

?>

希望你得到我的问题?

谢谢!!!

4

3 回答 3

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>
于 2013-02-11T12:41:28.093 回答
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>

您将以数组的形式获取所选值,因此请检查该值是否存在于数组中。

于 2013-02-11T12:41:02.650 回答
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>
         <?
         }
?>
于 2013-02-11T12:43:13.677 回答