Geselecteerde (maand) onthouden in selectbox (Opgelost)
Ruultje - 04/03/2011 08:32
Nieuw lid
Ik heb een selectbox waarin maanden staan. Hij moet automatisch staan op de huidige maand. Wanneer er echter gekozen is voor een andere maand dan moet deze onthouden blijven. Dat gaat allemaal wel goed. Maar wanneer ik een maand eerder pak dan de huidige dan springt hij altijd terug naar de huidige maand.
Dus: pak ik bijvoorbeeld mei dan blijft de selectbox op mei staan. Maar pak ik dan februari dan springt hij terug naar maart (in de url wordt wel de maand februari weergegeven.
Wat ik doe ik hierin fout?
<?php
$maanden = array(
1 => "January",
2 => "February",
3 => "March",
4 => "April",
5 => "May",
6 => "June",
7 => "July",
8 => "August",
9 => "September",
10 => "October",
11 => "November",
12 => "December"
);
$months = range (01, 12);
echo "<span class='datachoice'>Month:</span><select name='month' id='period' class='month'>";
foreach ($months as $month) {
$selected = $month == date("m") ? 'selected="selected"' : '';
if(isset($_GET['month']) && $_GET['month'] == $month) {
// geslecteerd
echo '<option value = '. sprintf('%02d', $month) .' selected="selected" >'. $maanden[$month] .'</option>';
} else {
// huidige maand
echo '<option value = '.sprintf('%02d', $month).' '.$selected.'>'. $maanden[$month] .'</option>';
}
}
echo "</select>";
?>
<?php
1 => "January" ,
2 => "February" ,
3 => "March" ,
4 => "April" ,
5 => "May" ,
6 => "June" ,
7 => "July" ,
8 => "August" ,
9 => "September" ,
10 => "October" ,
11 => "November" ,
12 => "December"
) ;
$months = range ( 01 , 12 ) ; echo "<span class='datachoice'>Month:</span><select name='month' id='period' class='month'>" ;
foreach ( $months as $month ) {
$selected = $month == date ( "m" ) ?
'selected="selected"' : '' ;
if ( isset ( $_GET [ 'month' ] ) && $_GET [ 'month' ] == $month ) { // geslecteerd
echo '<option value = ' . sprintf ( '%02d' , $month ) . ' selected="selected" >' . $maanden [ $month ] . '</option>' ; } else {
// huidige maand
echo '<option value = ' . sprintf ( '%02d' , $month ) . ' ' . $selected . '>' . $maanden [ $month ] . '</option>' ; }
}
?>
2 antwoorden
Gesponsorde links
vinTage - 04/03/2011 09:03
Nieuw lid
<select name='month' id='period' class='month'>
<?php
$maanden = array(
1 => "January",
2 => "February",
3 => "March",
4 => "April",
5 => "May",
6 => "June",
7 => "July",
8 => "August",
9 => "September",
10 => "October",
11 => "November",
12 => "December"
);
$months = range (01, 12);
$active_month = isset($_GET['month']) ? $_GET['month'] : date("m");
foreach ($months as $month)
{
$select = sprintf('%02d', $month) == $active_month ? ' selected="selected"' : '';
?>
<option value="<?php echo sprintf('%02d', $month)?>"<?php echo $select?>><?php echo $maanden[$month]?></option>
<?php
}
?>
</select>
<select name='month' id='period' class='month'>
<?php
1 => "January" ,
2 => "February" ,
3 => "March" ,
4 => "April" ,
5 => "May" ,
6 => "June" ,
7 => "July" ,
8 => "August" ,
9 => "September" ,
10 => "October" ,
11 => "November" ,
12 => "December"
) ;
$months = range ( 01 , 12 ) ;
$active_month = isset ( $_GET [ 'month' ] ) ?
$_GET [ 'month' ] : date ( "m" ) ;
foreach ( $months as $month )
{
$select = sprintf ( '%02d' , $month ) == $active_month ?
' selected="selected"' : '' ; ?>
<option value="
<?php echo sprintf ( '%02d' , $month ) ?> "
<?php echo $select ?
> >
<?php echo $maanden [ $month ] ?> </option>
<?php
}
?>
</select>
Ruultje - 04/03/2011 09:36
Nieuw lid
Bedankt deze werkt. Ik had al geprobeerd met een elseif maar dit werkte ook niet. Deze werkt, super!
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.