我有以下内容,它为我提供了一个“跳转”菜单,可以在当前网址中添加查询,例如?date = 2016-07
<?php
$date = explode('-', $_GET['date']);
$year = $date[0];
$month = $date[1];
?>
<form>
<select name="date" onchange="this.form.submit()">
<?php
for ($i = 0; $i <= 18; ++$i) {
$time = strtotime(sprintf('+%d months', $i));
$value = date('Y-m', $time);
$label = date('F Y', $time);
printf('<option value="%s">%s</option>', $value, $label);
}
?>
</select>
</form>
页面跳转后,我想将新日期显示为默认值。我认为你通过给选择列表赋予“value”属性来做到这一点,但是没有用。再进一步阅读,您需要将“selected”添加到其中一个选项中。
如果匹配URL中的日期查询,如何将“selected”添加到其中一个选项?
答案 0 :(得分:1)
$selected = ($value == $_GET['date']) ? 'selected' : '';
printf('<option value="%s" %s>%s</option>', $value, $selected, $label);
答案 1 :(得分:1)
<?php
$date = explode('-', $_GET['date']);
$year = $date[0];
$month = $date[1];
?>
<form>
<select name="date" onchange="this.form.submit()">
<?php
for ($i = 0; $i <= 18; ++$i) {
$time = strtotime(sprintf('+%d months', $i));
$value = date('Y-m', $time);
$label = date('F Y', $time);
if(strcmp($value,$_GET['date']) == 0)
//If 0, $value and $_GET['date'] are the same: The option is selected
printf('<option value="%s" selected>%s</option>', $value, $label);
else
printf('<option value="%s">%s</option>', $value, $label);
}
?>
</select>
</form>