【问题标题】:HTML - Make URL variable overwrite default selection in select tagHTML - 使 URL 变量覆盖选择标记中的默认选择
【发布时间】:2016-01-07 03:00:56
【问题描述】:

我有一个带有选择标签的出生日期的表格。日期和月份默认为第一个选项(1 日和 1 月),这很好。对于这一年,我使用 selected="selected" 表示 1975 年,因为这是我的用户的平均年龄。

我想要做的是通过在 URL 中传递变量来覆盖这个默认年份值。

例如:

www.domain.com?dob_day=14&dob_month=july&dob_year=1980

原因是我想发送一封电子邮件并预填充他们填写的字段。

所以当我查看源代码时,现在发生的情况是选择了 1975 年,变量中传递的年份。

实现上述目标的最佳方法是什么?

非常感谢。

【问题讨论】:

  • 这不能用 php 完成(除非你在 php 中生成最终的 html)。可能最好的方法是文档就绪/加载的 JS 脚本读取这些变量并更改(如果需要)输入
  • 另外,你能说得更清楚一点吗?你有什么,你做了什么,你期望什么?顺便说一句,selected="selected" 应该只是selected
  • 谢谢,我现在已经更正了。我也用一些 PHP 解决了它。

标签: php html forms variables url


【解决方案1】:

我认为最快、最简洁的方法是在页面加载时使用简短的 javascript 设置适当的值。

假设您读取这样的数据:

$selectedYear = isset($_GET['dob_year']) ? intval($_GET['dob_year']) : null;

你有这样的选择块:

<select id="selectedYear" name="selectedYear" class="combobox">
    ...
</select>

您可以将其添加到页面底部:

<?php if ($selectedYear) { ?>
    <script type="text/javascript">
        window.onload = function() { document.getElementById('selectedYear').value = <?php echo $selectedYear; ?>; }
    </script>
<?php } ?>

【讨论】:

    【解决方案2】:

    要覆盖默认值,您可以使用以下方式从 URL 中检索变量:

    $dob_year = $_GET["dob_year"];
    $dob_day = $_GET["dob_day"];
    $dob_month = $_GET["doby_month"];
    

    然后对于每个选择下拉菜单,您可以这样做:

    echo "<select id = \"dob_month\">";
    
    for($i=1;$i<=12;$i++)
    {
        $sel = $i==$dob_month ? "selected" : "";
    
        echo "<option value=\"$i\" $sel>$i</option>";
    }
    
    echo "</select>";
    

    【讨论】:

    • 谢谢,我已经从 URL 中检索了变量,因此更改了 PHP 中的 if 语句以包含变量等于 null 的 OR 情况。为了验证,每个选项的 if 语句已经存在。
    猜你喜欢
    • 1970-01-01
    • 2012-12-12
    • 1970-01-01
    • 2019-10-27
    • 2019-05-30
    • 1970-01-01
    • 1970-01-01
    • 2021-08-27
    • 2016-02-20
    相关资源
    最近更新 更多