zeige nächsten bzw. letzten Monat im Kalender

Bad Robot

Grünschnabel
Hallo zusammen,
ich hoffe diesen Threat gibt es noch nicht, zumindest konnte ich ihn nicht finden :(
Ich bin leider noch nicht sehr gewand in PHP und hoffe ein wenig Hilfe hier im Forum zu finden, mein Problem ist folgendes:

Ich möchte gerne anhand von 2 submit Buttons einen Kalendermonat weiter- bzw zurückgehen. Neben den Buttons habe ich 2 Textfelder, in einem soll der aktuelle Monat stehen z.B. 4 für April und in dem anderem das aktuelle Jahr 2007. Wenn jetzt beispielsweise auf den Weiterbutton gedrückt wird, soll der Kalender anhand $_POST den nächsten Monat in einer Tabelle anzeigen und im textfeld sollte der nächste Monat angezeigt werden in diesem Fall 5 und das sollte belibig oft gemacht werden können. Den code um die Tabelle dynamisch anzuzeigen hab ich schon hinbekommen, aber bis jetzt musste ich immer die Textfelder mit Monat bzw. Jahr selbst ausfüllen. Das einzige woran ich noch hänge sind die 2 buttons, ich hoffe ich habe das Problem gut beschreiben können und freue mich über jeden Rat, danke im voraus.
Gruß Bad Robot
 
Inkrementiere/dekrementiere einfach die aktuelle Monatzahl. Ist die neue Monatszahl größer 12 oder kleiner 1, in- beziehungsweise dekrementiere die Jahreszahl.
PHP:
$current = array(
	'year'  => $_POST['year'],
	'month' => $_POST['month'],
);
// nächster Monat
if( $current['month']-1 < 1 ) {
	$previous['year']  = $current['year'] - 1;
	$previous['month'] = 12;
} else {
	$previous['year']  = $current['year'];
	$previous['month'] = $current['month'] - 1;
}
// vorheriger Monat
if( $current['month']+1 > 12 ) {
	$next['year']  = $current['year'] + 1;
	$next['month'] = 1;
} else {
	$next['year']  = $current['year'];
	$next['month'] = $current['month'] + 1;
}
 
Vielen Dank Gumbo für deine schnelle Antwort.
Auf die Idee mit dem Array bin ich nicht gekommen. Vielleicht liegt es daran, dass ich nicht genau weiß, wie ich die Array Variablen in das Formular einbinden muss. Wäre es zu viel verlangt, wenn du mich dabei noch ein wenig unterstützen könntest? Wäre dir sehr dankbar.

Meine bisherigen Fehlversuche sehen z.B. so aus:

foreach($current as $ele){
echo "<input type=\"Text\" name=\"month\" size=\"3\" value=\"$ele\">";
echo "<input type=\"Text\" name=\"year\" size=\"5\" value=\"$ele\">";
}

Gruß Bad Robot
 
Bei deinem Beispiel wird für jedes Element des Arrays die Ausgabe der zwei Formulartags gemacht. Richtig wäre es jedoch die Ausgabe nur einmal zu machen. Lass einfach das foreach-Konstrukt weg:
PHP:
echo '<input type="text" name="month" size="3" value="'.$current['month'].'">';
echo '<input type="text" name="year" size="3" value="'.$current['year'].'">';
 
Ich muss noch irgendwas falsch machen, die Buttons erfüllen immer noch nicht ihren Zweck. Ich habe jetzt folgendes hinzugefügt:

if($_POST['zurueck']){
$current['month']-1;
}
echo "<input type=\"Submit\" name=\"zurueck\" value=\" < \">";

if($_POST['weiter']){
$current['month']+1;
}
echo "<input type=\"Submit\" name=\"weiter\" value=\" > \">";
 
Zurück