2013-02-11 110 views
1

首先看我的代码。如何显示选中的多个下拉选项中的php

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

?> 

希望你得到我的问题?

谢谢!

+1

'$ row_10-> USER_ID == $ _ POST [ 'assign_to']'你的意思的''==代替'='? – MarcDefiant 2013-02-11 12:38:07

+0

@Mogria我编辑的问题。我能够做单,但我需要多选 – Shreya 2013-02-11 12:39:33

回答

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> 
+0

如何使用此选项,您可以使用

+0

'' – 2013-02-11 12:46:22

+0

@PrasanthBendra我更新了条件语句行,因为括号关闭丢失了!请更新你的:) – Venu 2013-02-11 12:47:34

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> 

你会得到所选择的值作为一个数组,因此检查值在数组中存在。

+0

错误即将到来 – Shreya 2013-02-11 12:45:14

+0

对不起,我更新了我的答案,有一个括号丢失。现在它应该工作! – Venu 2013-02-11 12:46:00

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> 
     <? 
     } 
?> 
相关问题