2013-06-26 10 views
5

Mam ten kod PHP, który wypełnia wartości w polu SELECT przez ostatnie 10 lat i następne 10 lat.PHP Dropdown zapełnianie lat - jak wybrać bieżący rok

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

Jak mogę automatycznie wybrać bieżący rok?

+5

można uzyskać bieżący rok z '$ curyear = date ('Y')' więc po prostu sprawdzić, że wewnątrz pętli . – Nelson

Odpowiedz

2

Sprawdź rok z bieżącym rokiem i wybierz go.

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

Zmień swoje echo do:

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

proszę użyć kodu powyżej pętli, zamiast Ciebie.

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

należy użyć 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

lepiej byłoby ustawić 'wybrane' zgodnie z definicją w specyfikacji:' $ selected = ($ year == $ Startyear)? "selected =" selected "": ""; w przeciwnym razie przeglądarki mogą zignorować wybrany stan. – SaschaM78