我需要这方面的帮助,并且在考虑如何做到这一点时非常困惑。
我有一个表单,一个更新/编辑表单,里面有一个多选的列表框。
在我的数据库记录中:
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>';
}
?>
等等。我只列出了几个。所以我想问一下,如果我的列表框选项没有硬编码,有没有办法可以做到这一点?
希望你们明白。提前谢谢。
答案 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>';
}