如何展现降选择多个选项下的PHP(how to show selected multiple opt

2019-10-17 17:15发布

第一眼看到我的代码。

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

?>

希望你得到我的问题?

谢谢!!!

Answer 1:

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>


Answer 2:

使用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>

您将获得选择的值作为一个数组,因此检查值在数组中存在。



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


文章来源: how to show selected multiple options of drop down in php