使用数据库列表项检查列表框中的列表项

时间:2012-07-30 09:45:00

标签: php mysql

我需要这方面的帮助,并且在考虑如何做到这一点时非常困惑。

我有一个表单,一个更新/编辑表单,里面有一个多选的列表框。

在我的数据库记录中:

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 个答案:

答案 0 :(得分: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>';
}