【问题标题】:how to show selected multiple options of drop down in php如何在php中显示选定的多个下拉选项
【发布时间】:2013-01-26 13:11:33
【问题描述】:

首先看我的代码。

   <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 代码。我为 single selected 所做的下拉为:

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

?>

希望你得到我的问题?

谢谢!!!

【问题讨论】:

  • $row_10-&gt;user_id == $_POST['assign_to'] 你的意思是== 而不是= 吗?
  • @Mogria 我编辑了问题。我可以做一个,但我需要多个选择

标签: php select drop-down-menu options


【解决方案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】:
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>

【讨论】:

  • 如何使用这个选项你可以用 写完整的代码
  • &lt;option &lt;?= in_array($row_10-&gt;user_id,$_POST['assign_to']) ? 'selected' : ''?&gt; value="&lt;?=$row_10-&gt;user_id?&gt;"&gt;&lt;?=$row_10-&gt;username?&gt;&lt;/option&gt;
  • @PrasanthBendra 我已经更新了条件语句行,因为缺少括号关闭!也请更新你的:)
  • @Venu : :D,你明白了。为此+1:D
【解决方案3】:

当您使用多个选择框时,您将收到 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>
         <?
         }
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-29
    • 1970-01-01
    • 2015-08-02
    • 2020-03-06
    • 2014-06-12
    • 2019-09-13
    • 1970-01-01
    相关资源
    最近更新 更多