我有一个表格,其中包含出生日期的选择标签。日期和月份默认为第一个选项(第1个和1月),这很好。对于这一年,我使用选中="选择" 代表1975年,因为这是我的用户的平均年龄。
我希望能够通过在URL中传递变量来覆盖此默认年份值。
例如:
www.domain.com?dob_day=14&dob_month=july&dob_year=1980
原因是我想发送电子邮件并预填充他们填写的字段。
因此,当我查看源代码时,现在发生的事情是1975年被选中,和变量中传递的年份。
实现上述目标的最佳方式是什么?
非常感谢。
答案 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 } ?>