2011-09-26 124 views
0

我正試圖從數據庫中加載一個多重選擇來編輯。PHP從MySQL中選擇多個選擇選項

我在一個內爆串存儲原始數據(即, 「4,6,8,9」)。

我想要做的是爆炸該字符串從數據庫中,然後讓加載編輯表單時選擇的值。這些值是Float,然後是1-52。

這裏是我到目前爲止的代碼,但它並沒有選擇值。

$ listing-> getWeeksAvail()僅僅是一個調用返回在這種情況下「4,6 WeeksAvail住宅,8,9)

<?php 
$weeks_available = explode(",", $listing->getWeeksAvail()); 
if (in_array("Float", $weeks_available)) { 
    echo " selected='selected'"; 
} 
?> 

>Float</option> 
<?php 
    for($float=0; $float<=52; $float++) { 
     echo "<option value=\"$float\""; 
     if (($listing instanceof listing) && $float == $listing->getWeeksAvail()) { 
     echo " selected='selected'"; 
    } 
     echo ">$float</option>\n"; 
} 

回答

0

的你的代碼的第二部分應該是這樣的:

<?php 
for ($float=0; $float<=52; $float++) { 
    echo "<option value=\"$float\""; 
    if (in_array($float, $weeks_available))) { 
    echo " selected='selected'"; 
    } 
    echo ">$float</option>\n"; 
} 
+0

謝謝,是的,現在工作。我有麻煩得到浮點值被選中,但我認爲這是如何工作的。我會繼續玩。再次感謝 – guyfromfl

+0

使用$ weeks_available = explode(「,」,$ listing-> getWeeksAvail()); 你注意到逗號後的空格嗎?你已經使用','來破壞價值觀。所以,在爆炸時,你需要使用相同的。 – Debiprasad

+0

ahhhh多數民衆贊成它...感謝第二集眼睛 – guyfromfl

0

你可以嘗試

<?php 
$week_available = explode(',', $listing->getWeeksAvail()); 

foreach (range(1,42) as $week) { 
    echo "<option value=\"$week\"" 
     .(in_array($week,$week_available)?"selected=\"selected\"":"") 
     .">$week</option>"; 
}