如何在PHP上的日期(年份)下拉菜单中添加单词?



我的PHP网站上有一个下拉菜单,从2014年开始,到当年(2018年(结束。

下拉菜单示例

我想在此菜单中添加"ACTIVE"一词,该菜单将包含所有年份。默认情况下,当您打开页面时,将选择此选项。这是我多年来的代码。

<?
// Sets the top option to be the current year.
$currently_selected = date('Y');
// Year to start available options at
$earliest_year = 2014;
// Set your latest year you want in the range, in this case, current year
$latest_year = date('Y');

echo "Select year to display: ";
print '<select>';
//Loops over each int[year] from current year, back to $earliest_year [2014]
foreach ( range( $latest_year, $earliest_year ) as $i ) {
// Prints the option with the next year in range
print '<option value="'.$i.'"'.($i === $currently_selected ? ' selected="selected"' : '').'>'.$i.'</option>';
}
print '</select>';

?>

如何添加"活动"选项?

编辑**

所以,这就是我现在所拥有的:

<form method="get" action="<?=$this_page?>">
<?

// Sets the top option to be the current year.
$currently_selected = date('Y');
// Year to start available options at
$earliest_year = 2014;
// Set your latest year you want in the range, in this case, current year
$latest_year = date('Y');

echo "Select year to display: ";
print "<select name="yearchosen">";
if(isset($_GET[submitok]))
{
?>
<option value="<?=$yearchosen?>" selected></option>
<?} else {
?>

<option value="Active" selected>Active</option>
<?}
//Loops over each int[year] from current year, back to $earliest_year [2014]
foreach ( range( $latest_year, $earliest_year ) as $i ) {
// Prints the option with the next year in range
print '<option value="'.$i.'" >'.$i.'</option>';
}
print '</select>';
?>
<td>
<input style="padding-left:5px" name="submitok" type="submit" value="Update"/>
</td>
</form>

-- 当我点击 UPDATE 时,它会刷新站点,并且我正在回显所选值,但它没有显示在下拉菜单中.....它再次显示活动....我在这里错过了什么??

如果这是在HTML页面中,我建议对foreach循环使用备用Sytax,并将HTML部分保留为html(没有打印或回显(

您只需添加一个

<option value="ACTIVE" selected="selected">ACTIVE</option>

在 foreach 循环之外

然后更改 foreach 循环中的现有选项,如下所示:

<option value="'.$i.'".'>'.$i.'</option>

因此,如果您不希望选择当前年份并希望将通用选项添加到列表中,则需要更改:

print '<option value="'.$i.'"'.($i === $currently_selected ? ' selected="selected"' : '').'>'.$i.'</option>';

要成为

print '<option value="'.$i.'">'.$i.'</option>';

然后在 for 循环之后添加一个仅用于活动的选项:

print '<option value="active" selected="selected">Active</option>';

但是你的 value="active" 需要替换为一个值,该值实际上会吐回所有年份的数据

因为您将整数与字符串匹配,所以只需将+放在$currently_selected之前即可将其转换为整数

print '<option value="'.$i.'"'.($i === +$currently_selected ? ' selected="selected"' : '').'>'.$i.'</option>';

最新更新