【问题标题】:PHP - Foreach loop - echo selected valuePHP - Foreach 循环 - 回显所选值
【发布时间】:2016-11-30 09:31:09
【问题描述】:

我已经为员工制作了类似于 crud 系统的东西。

用户可以输入员工的信息。在其他情况下,有一个“选择”输入,其中包含来自数据库的几个选项。当我填写表格并提交时,数据会进入数据库。

但是当我想编辑表单时,'select' 输入会得到另一个值,即使我在那里没有更改任何内容。所以我需要一些东西来回显选项中已经输入的值。

这是我用来循环类别的 foreach 循环:

<?php
$i = 0;
foreach($categories as $key => $category) {
    ?>
    <option value="<?php echo $category; ?>"><?php echo $category; ?></option>
    <?php
    $i++;
}
?>  

如何从选择并存储在那里的数据库中获取值。 谢谢

【问题讨论】:

  • 您是否查看过您的数据库是否正确存储了您提交的那些确切值?
  • @Rasika 确实如此。它运作良好,直到我想编辑用户个人资料。然后,即使我不触摸选择输入,它也会得到一个新值。假设有 4 个选项(a、b、c、d),我第一次选择“b”。它被存储为'b'。稍后,当我编辑配置文件上的任何信息时,选择输入的值会被“a”覆盖。
  • 那么问题一定出在您的“更新”查询或其值中。它怎么可能自动改变它的值?它是否显示了您编辑和更新的数据库中的确切数据。
  • 可读性...$categories 数据来自您的 SQL 查询吗?或者您是在问如何连接到数据库并输出与该数组对应的数据库中关联的每个类别?这很不清楚,就像你的代码一样。
  • 你在用$i++做什么?你需要什么?

标签: php mysql for-loop foreach


【解决方案1】:

HTML &lt;option&gt; 标记具有您应该使用的属性 selected,它指定应该预先选择一个选项:

<?php
$i = 0;
$selected_category = "B"; // category value from database
foreach($categories as $key => $category) {
    $selected = ($selected_category == $category) ? "selected" : "";
?>
    <option value="<?php echo $category; ?>" <?php echo $selected; ?>>
    <?php echo $category; ?></option>
<?php
    $i++;
}
?>

【讨论】:

  • 但我不能硬编码类别值,因为我可以添加它们动态
  • 数据库中的类别值 - 这意味着您从数据库/缓存中获取最后一个已知的选定值,或者您正在存储它@amircisija
  • 好吧,我添加了 $selected_category = $edit_row["rm_cat"];。现在可以了。当我打开配置文件进行编辑时。 Option 值被选中。非常感谢。
猜你喜欢
  • 2022-10-14
  • 1970-01-01
  • 1970-01-01
  • 2016-05-21
  • 2010-12-22
  • 1970-01-01
  • 1970-01-01
  • 2018-02-18
  • 1970-01-01
相关资源
最近更新 更多