[Drop-Down-Menu] selected = aktueller Monat

Scorp1337

Erfahrenes Mitglied
Hallo...
ich glaube, dass diese Frage in der Richtung noch nicht vorhanden ist, deshalb schreib ich es hier.
Denn bisher wurde sowas meist nur direkt für das aktuelle Datum gefragt, ich brauche es aber für einen unser 12 Monate.

Hier mein Code (funktioniert schön, für den aktuellen Tag -.-)
PHP:
<?php
	$datum = getdate();
	
	//Zum Vergleich einfach mal das heutige Datum ausgeben //
	echo "$datum[mday].$datum[mon].$datum[year]<br>";
	
	echo "<select>";
	$letztertag = mktime(0, 0, 0, $monat+1, 0, $jahr);
	$zahl = strftime ("%d", $letztertag);  
		if($zahl > 31)
			{
			$zahl = 31;
			}
		$count = 1;
		while($count < $zahl)   
			{
			if ($count == $datum[mday])
					{
					echo "<option value='" . $datum[mday] . "' selected>" . $count . "." . $datum[mon] . "</option>";
					}
			else	{
					echo "<option value='" . $count . "'>" . $count . "." . $datum[mon] . "</option>";
					}
			$count++;
			}
			echo "</select>";
?>

Also was ich genau haben will ist klar oder?
Ein Drop-Down Menü in dem 12 Monate drin stehen (in Worten...aber kein Problem via Case), bei dem als automatische Vorauswahl beim öffnen der Seite der aktuelle Monat (z.B. Oktober) steht.

Bitte um hilfe, da ich nicht weiss, wie ich anstatt des tages-counters nen monats-counter bastele...! :(
 
Probiers mal hiermit:
PHP:
<html>
	<head>
		<title>Monatsliste</title>
	</head>
	<body>
		<form>
			<select name="month">
			<?php
			$months = array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
			$monthNow = date("m");

			for($i = 0; $i < 12; $i++)
			{
				if(($i + 1) == $monthNow)
				{
					echo '<option value="' . ($i + 1) . '" selected>' . $months[$i] . '</option>';
				}
				else
				{
					echo '<option value="' . ($i + 1) . '">' . $months[$i] . '</option>';
				}
			}
			?>
			</select>
		</form>
	</body>
</html>
 
Und hier haben wir die Lösung... für all die User, die später mal ein Drop-Down-Menü machen, in dem alle Monate angezeigt werden und der aktuelle Monat vorausgewählt wurde.

PHP:
echo "<select name='monat'>";
			$monatz = 12;
			$mcount = 1;
			while($mcount <= $monatz)
				{
				switch ($mcount){
						case '01':$monat = "Januar";    break;
						case '02':$monat = "Februar";    break;
						case '03':$monat = "März";    break;
						case '04':$monat = "April";    break;
						case '05':$monat = "Mai";    break;
						case '06':$monat = "Juni";    break;	
						case '07':$monat = "Juli";    break;
						case '08':$monat = "August";    break;
						case '09':$monat = "September";    break;
						case '10':$monat = "Oktober";    break;
						case '11':$monat = "November";    break;
						case '12':$monat = "Dezember";    break;
					}
				if($mcount < 10)
					{ 
					$mcount = "0".$mcount;
					}
				if ($mcount == $datum[mon])
					{
					echo "<option value='" . $datum[mon] . "' selected>$monat</option>";
					}
				else{
                    echo "<option value='" . $mcount . "'>$monat</option>";
					}
				   $mcount++;
				}
	echo "</select>";

Gruß Scorpion

[EDIT]
Ja mAu... deins geht auch! ...ich hatte es aber scho vor deinem post fertig, sonst hätte ich mir die arbeit nimmer gemacht :)
Aber danke trotzdem!
[/EDIT]
 
Zuletzt bearbeitet:
Wenn man es hier und da mal wieder braucht, auch als kleine Platzsparende Funktion:
(Die Select Box mal bewusst nicht mit reingenommen, die sind eh meist zu viel customized ^^)
PHP:
<?
setlocale (LC_ALL, 'de_DE');

function MonDropdown($selected = null){
    if($selected === null) $selected = date('m');
    for ($i=1,$ret='';$i<=12;$i++)
        $ret .= "<option value=\"{$i}\"".($i==$selected?' selected':'').">".strftime("%B",mktime(0,0,0,$i))."</option>\n";
    return $ret;
}
?>

<select>
<?=MonDropdown(2)?>
</select>
 
Zurück