我有一个带有出生日期选择标签的表单。日期和月份默认为第一个选项(1日和1月),这是可以的。对于年份,我使用selected="selected"表示1975年,因为这是我的用户的平均年龄。
我想做的是通过在URL中传递变量来覆盖这个默认的年份值。
例如:www.domain.com ? dob_day = 14, dob_month = july& dob_year = 1980
原因是我想发送一封电子邮件,并预先填充他们填写的字段。
当我查看源代码时,现在发生的是1975年被选中,和在变量中传递的年份
实现上述目标的最佳方法是什么?
要覆盖默认值,可以使用下面的代码从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>";
我认为最快和最干净的方法是使用一个简短的javascript设置适当的值,当页面加载
假设你像这样读取数据:
$selectedYear = isset($_GET['dob_year']) ? intval($_GET['dob_year']) : null;
然后是这样的select block
<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 } ?>