以编辑形式选择列表

时间:2013-03-17 13:56:59

标签: php html mysql list select

我有这个代码从Mysql的字段“category”收集类别,它是一个部分编辑表单,我希望在列表填充之后选择之前选择的类别,代码是:

 <td align="right">Category</td>
     <td>
         <?php
        // Write out our query.
        $query = "SELECT id,cat_name,parent FROM categories WHERE parent='0'";
        // Execute it, or return the error message if there's a problem.
        $result = mysql_query($query) or die(mysql_error());
        $dropdown = "<select name='category'>";
        while($row = mysql_fetch_assoc($result)) {
        $dropdown .= "\r\n<option value='{$row['id']}'>{$row['cat_name']}</option>";
        }
        $dropdown .= "\r\n</select>";
        echo $dropdown;
        ?>
        </td>

我不知道该怎么办?我知道我应该在我想要选择的选项上键入“已选择”,但是在填写列表后如何选择它?

2 个答案:

答案 0 :(得分:0)

您可以使用索引标签$tab["key"],这样您就可以轻松找到所需的行并对其进行编辑。

编辑:您的信息不是很清楚,但我认为您希望这样做。否则,请澄清。

答案 1 :(得分:0)

在您的代码中,您没有检查用户之前选择的内容。你可以这样做:

$selected = '';
if($row['id']==$userSelectedOption) $selected = ' selected="selected"';
$dropdown .= "\r\n<option value='{$row['id']}'{$selected}>{$row['cat_name']}</option>";

在上面的示例中,我们有一个名为$userSelectedOption的变量,它表示用户已选择的值。我们还假设它是一个类别的ID。在while循环中,您将使用上述3行而不是您的一行。当这个呈现出来时,列表将使所选项目成为匹配$userSelectedOption