2012-07-30 67 views
0

我需要幫助,我很困惑,想如何做到這一點。使用數據庫列表項檢查列表框中的列表項

我有一個窗體,更新/編輯窗體,裏面我有一個多選的列表框。

在我的數據庫記錄:

ID Items 
1 Apple 
2 Banana 
3 Orange 
4 Pear 
5 Starfruit 

每當用戶點擊編輯這使他們這種形式,我取得了按照其先前保存的數據突出顯示在列表框中。

當用戶點擊更新,在更新表單列表框看起來就像這樣:

<option selected>Apple</option> <-- highlighted 
<option>Banana</option> 
<option selected>Orange</option> <-- highlighted 
<option>Pear</option> 
<option selected>Starfruit</option> <-- highlighted 

這是用戶將根據其先前保存他們的第一個選擇的項目看。上等等

<?php 
$select=mysql_query("select * from products_list where id='$id' "); 
while($row=mysql_fetch_array($select)){ 

$product_category = explode("\n", $row['category']); 
$i=0; 

    echo '<select name="product_category[]" id="category" size="9" multiple="multiple"><option value="Black" '; 
if ($product_category[$i] == "Black"){ echo 'selected="selected"'; $i++; } 
echo '>Black</option><option value="White" '; 
if ($product_category[$i] == "White"){ echo 'selected="selected"'; $i++; } 
echo '>Black</option><option value="Blue" '; 
if ($product_category[$i] == "Blue"){ echo 'selected="selected"'; $i++; } 
echo '>Black</option>'; 
} 
?> 

所以:

目前我正在做硬編碼它。我只列出幾個。所以我想問一下,如果我的列表框選項沒有被硬編碼,我可以做到這一點嗎?

希望你們明白。提前致謝。

回答

1

對不起,如果我誤解你和你的代碼,但我認爲這是你想要做什麼:

<?php 
$select=mysql_query("select * from products_list where id='$id' "); 

// Insert the categories in an array in order 
$categories = array('Black', 'White', 'Blue', ...); 

while($row=mysql_fetch_array($select)) 
{ 
    $product_category = explode("\n", $row['category']); 

    echo '<select name="product_category[]" id="category" size="9" multiple="multiple">'; 

    foreach($product_category as $i=>$value) 
    { 
     echo '<option value="'.$categories[$i].'"'; 

     if($value == $categories[$i]) 
     { 
      echo ' selected="selected"'; 
     } 

     echo '>'.$categories[$i].'</option>'; 
    } 

    echo '</select>'; 
} 
+0

召喚嗨,對於類別陣列,必須是被硬編碼?我可以從另一個已經有一組選項的數據庫中取出數組嗎? – Dr3am3rz 2012-07-30 10:05:17

+0

當然可以。只需循環遍歷數據庫中的行並推送數組中的類別即可。我不知道你的數據庫結構和字段是如何相關的,所以我不能更具體。 – Summoner 2012-07-30 10:06:20

+0

對不起,因爲我對你的代碼很迷惑。 = X 比方說,我有2個數據庫 Database_1(所有可用的選項) ID項目 1白 2黑 3藍 了Database_2(用戶選擇存儲在數據庫中) 項目 白 黑色 這足夠清楚了嗎? – Dr3am3rz 2012-07-30 10:12:53