【问题标题】:select list in edit form在编辑表单中选择列表
【发布时间】:2013-03-17 13:56:59
【问题描述】:

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

 <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>

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

【问题讨论】:

  • 之前的选择保存在哪里?如果您不持久化,服务器将不知道您之前选择了什么。

标签: php html mysql list select


【解决方案1】:

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

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

【讨论】:

  • 我使用变量使用产品的 id 从数据库中检索,我有一个名为“Category”的变量,它具有我要在列表中选择的类别的名称,但是如何选择填满后,这是我的问题
  • 就像我说的,使用和索引选项卡:$dropdown["categoryname"] 这样你可以在填充选项卡后轻松找到好行。或者直接在循环中检查,就像 Liam 建议的那样。
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 2016-03-27
    • 2021-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-06
    • 1970-01-01
    • 2012-08-04
    • 2016-02-18
    相关资源
    最近更新 更多