2013-06-26 10 views
5

Ich habe diesen PHP-Code, der Werte in einem SELECT-Feld für die letzten 10 Jahre und die nächsten 10 Jahre bevölkert.PHP Drop-Down-Population Jahre - wie das aktuelle Jahr wählen

<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> 

wie kann ich es automatisch wählen das aktuelle Jahr?

+5

Sie können das aktuelle Jahr mit '$ curyear = date ('Y') erhalten' so überprüfen nur, dass innerhalb der Schleife . – Nelson

Antwort

2

Überprüfen Sie das Jahr mit dem aktuellen Jahr und wählen Sie es aus.

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

Ändern Sie Ihr Echo:

echo '<option'.($starting_year == date('Y')) ? "selected=\"selected\"" : "".' value="'.$starting_year.'">'.$starting_year.'</option>'; 
7
<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>'; 
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>'; 
    } 
} 

Bitte benutzen Sie den angezeigten Code für Schleife anstelle von Ihnen.

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

sollten Sie verwenden die selected attributed

$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>'; 

} 
1
<?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> 
+0

wäre es besser, das 'selected' wie in der Spezifikation definiert zu setzen:' $ selected = ($ year == $ Startyear)? 'selected = "selected"': ''; 'Andernfalls ignorieren Browser den ausgewählten Status. – SaschaM78

Verwandte Themen