2013-02-11 65 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> 
     <? 
     } 
?> 
相關問題