PHP下拉菜单填充年份 - 如何选择当前年份

5

我有一个PHP代码,它可以为前10年和后10年的时间段填充值到一个SELECT选择框中。

<select name="fromYear"';
   $starting_year  =date('Y', strtotime('-10 year'));
   $ending_year = date('Y', strtotime('+10 year'));

    for($starting_year; $starting_year <= $ending_year; $starting_year++) {
 echo '<option value="'.$starting_year.'">'.$starting_year.'</option>';
  }             
 echo '<select>

如何使其自动选择当前年份?

5
您可以使用 $curyear = date('Y') 获取当前年份,因此只需在循环内检查即可。 - Nelson
9个回答

9
<select name="fromYear"';
 $starting_year  =date('Y', strtotime('-10 year'));
 $ending_year = date('Y', strtotime('+10 year'));
 $current_year = date('Y');
 for($starting_year; $starting_year <= $ending_year; $starting_year++) {
     echo '<option value="'.$starting_year.'"';
     if( $starting_year ==  $current_year ) {
            echo ' selected="selected"';
     }
     echo ' >'.$starting_year.'</option>';
 }               
 echo '<select>';

4
<?php
//get the current year
$Startyear=date('Y');
$endYear=$Startyear-10;

// set start and end year range i.e the start year
$yearArray = range($Startyear,$endYear);
?>
<!-- here you displaying the dropdown list -->
<select name="year">
    <option value="">Select Year</option>
    <?php
    foreach ($yearArray as $year) {
        // this allows you to select a particular year
        $selected = ($year == $Startyear) ? 'selected' : '';
        echo '<option '.$selected.' value="'.$year.'">'.$year.'</option>';
    }
    ?>
</select>

最好按照规范设置 selected$selected = ($year == $Startyear) ? 'selected="selected"' : '';,否则浏览器可能会忽略选中状态。 - SaschaM78

2

检查年份并将其与当前年份匹配,使其被选中。

for($starting_year; $starting_year <= $ending_year; $starting_year++) {
    if($starting_year == date('Y')) {
        echo '<option value="'.$starting_year.'" selected="selected">'.$starting_year.'</option>';
    } else {
        echo '<option value="'.$starting_year.'">'.$starting_year.'</option>';
    }
} 

1
将您的回声更改为:
 echo '<option'.($starting_year == date('Y')) ? "selected=\"selected\"" : "".' value="'.$starting_year.'">'.$starting_year.'</option>';

0
**echo '<select name="fromYear">';
$starting_year  =date('Y', strtotime('-10 year'));
   $ending_year = date('Y', strtotime('+10 year'));
   $current_year = $starting_year+10;
   echo"<option value='$current_year'>$current_year</option>";
    for($starting_year; $starting_year <= $ending_year; $starting_year++) {
 echo '<option value="'.$starting_year.'">'.$starting_year.'</option>';
  } 
echo '<select>';**

你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Community

0
for($starting_year; $starting_year <= $ending_year; $starting_year++) {
    if($starting_year == date('Y')){
        echo '<option selected=selected value="'.$starting_year.'">'.$starting_year.'</option>';
    }else{
        echo '<option value="'.$starting_year.'">'.$starting_year.'</option>';
    }
}

请使用上面的代码替换你的循环。

0
echo '<select name="fromYear">';
$cur_year = date('Y');
for($year = ($cur_year-10); $year <= ($cur_year+10); $year++) {
    if ($year == $cur_year) {
        echo '<option value="'.$year.'" selected="selected">'.$year.'</option>';
    } else {
        echo '<option value="'.$year.'">'.$year.'</option>';
    }
}               
echo '<select>';

0

你应该使用选定的属性

$starting_year  =date('Y', strtotime('-10 year'));
$ending_year = date('Y', strtotime('+10 year'));
for($starting_year; $starting_year <= $ending_year; $starting_year++) {
   if(date('Y')==$starting_year) { //is the loop currently processing this year?
      $selected='selected'; //if so, save the word "selected" into a variable
   } else {  
      $selected='' ; //otherwise, ensure the variable is empty
   }
   //then include the variable inside the option element
   echo '<option '.$selected.' value="'.$starting_year.'">'.$starting_year.'</option>';
}

0
for($starting_year; $starting_year <= $ending_year; $starting_year++) { 
 echo '<option value="'.$starting_year.'"'. if(starting_year == date('Y')) echo "selected"  .'>'.$starting_year.'</option>';   

} 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接