HTML - 使网址变量覆盖选择标记

时间:2015-10-09 08:34:53

标签: php html forms variables url

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

我希望能够通过在URL中传递变量来覆盖此默认年份值。

例如:

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

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

因此,当我查看源代码时,现在发生的事情是1975年被选中,变量中传递的年份。

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

非常感谢。

2 个答案:

答案 0 :(得分:1)

要覆盖默认值,您可以使用类似的方法从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>";

答案 1 :(得分:0)

我认为最快,最干净的方法是在页面加载时使用简短的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 } ?>