2012-07-30 34 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