如何在php中显示选中的多个下拉选项

时间:2013-02-11 12:36:59

标签: php select drop-down-menu options

首先看我的代码。

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

?>

希望你收到我的问题?

感谢!!!

3 个答案:

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