【问题标题】:retain drop down selection after form submission表单提交后保留下拉选择
【发布时间】:2017-01-22 16:00:22
【问题描述】:

我有一个 HTML 表单,其中包含多个下拉菜单字段,这些字段通过数组循环填充,以选择多个字段之间共有的数据。

<label>Techician:</label>
<select name="rcvTech" id="rcvTech">
    <option value="0">--Select Technician--</option>
    <?php
        foreach ($tech as $t) {
            echo "<option value='$t'>$t</option>";
        }
    ?>
</select>

如何在提交表单时保留所有下拉菜单的选定数据,这样如果有任何错误需要纠正,用户就不必重新选择每个字段的繁琐任务?

解决方案改编自 user5748817 的以下帖子:

<label>Receiving techician:</label>
<select name="rcvTech" id="rcvTech">
    <option value="0" selected="selected">--Select Technician--</option>
    <?php
        foreach ($tech as $t) {
            echo "<option value='$t'";
                if (isset($_POST['submitted']) && $_POST['rcvTech'] == $t){
                    echo " selected";
                }
            echo ">$t</option>";
        }
    ?>
</select>

【问题讨论】:

标签: javascript php forms


【解决方案1】:

为了能够处理多个选定的选项,您需要将数据收集为数组。因此将选择名称更改为 rcvTech[]。在验证提交的数据时,在会话中收集它以便能够获取提交的值。

<label>Techician:</label>
<select name="rcvTech[]" id="rcvTech">
    <option value="0">--Select Technician--</option>
    <?php
        foreach ($tech as $t) {
            if (in_array($t, $_SESSION['submitted'])) $selected=" selected";
            echo "<option value='".$t."' ".$selected.">".$t."</option>";
        }
    ?>
</select>

【讨论】:

  • 感谢 user5748817,您建议的解决方案将我带到了我想要的地方。
猜你喜欢
  • 2023-03-14
  • 1970-01-01
  • 2016-09-24
  • 2016-12-15
  • 1970-01-01
  • 1970-01-01
  • 2016-07-04
  • 2015-01-20
  • 2017-03-23
相关资源
最近更新 更多