我的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>';