【问题标题】:Keep PHP-created dropdown menu value when form is submitted提交表单时保留 PHP 创建的下拉菜单值
【发布时间】:2023-04-03 14:10:03
【问题描述】:

我希望在提交表单时保留下拉菜单的值。但是,此下拉菜单完全由 PHP 创建,而不是单独的手动输入值。

<?php
echo '<select name="month"><option>Month</option>';
for($i = 1; $i <= 12; $i++) {
$i = str_pad($i, 2, 0, STR_PAD_LEFT);
echo "<option value='$i'>$i</option>";
}
echo '</select>';

有没有办法在用户选择的值上设置 selected="selected"?

我也有一个“年”的版本,它有 100 个值。所以我正在寻找一种无需手动输入值的方法。

【问题讨论】:

  • 顺便说一句,您的 SELECT 将显示 Month,1,2,3,4,5,6,7,8,9,10,11,12。不确定 Month 是否应该在其中。
  • @Nic 有时这样做是为了让用户知道他们正在选择什么。而不是在字段旁边有一个标签。

标签: php forms


【解决方案1】:

循环时,检查提交的值是否等于当前值。如果是,请选择它:

for($i = 1; $i <= 12; $i++) {
    $i = str_pad($i, 2, 0, STR_PAD_LEFT);
    if ($i == $_POST["month"]) {
        echo "<option value='$i' selected>$i</option>";
    } else {
        echo "<option value='$i'>$i</option>";
    }
}

【讨论】:

  • 完美运行。谢谢!
【解决方案2】:

普通支票呢:

...
for(....) {
   printf("<option %s value='{$i}'>{$i}</option>", 
        ($i == $_POST['month']) ? 'selected' : '');
   }
}

【讨论】:

    猜你喜欢
    • 2016-09-24
    • 1970-01-01
    • 1970-01-01
    • 2016-07-04
    • 2011-07-27
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    相关资源
    最近更新 更多