Die Antwort von dedlfix hilft Dir wahrscheinlich schon. Dennoch einige Anregungen von mir:
- Ich konstruiere den Monate-Array gerne mit einem null Element am Anfang. Das erspart mir die ständige Indexverschiebung ($i+1) und ich kann auch mit date("m") direkt auf das Array zugreifen. Ist bei Dir im Bsp. auch schon passiert :) ($months[$i])
- Das selektieren des aktuellen Monats geht so, wie Du es machst nur, wenn Du den Juni von 2014 nicht mit mehr mit ausgibst. Du möchtest zwar den Juni von 2014 gar nicht drinhaben, doch dies birgt m.E. ein kleines Fehler_potential_ für zukünftige Anwendungen, wenn Du es vielleicht doch über mehrere Jahre gehen lassen möchtest.
- Wenn Du den Jahreswechsel drin hast, reicht es nicht mehr aus im value="" nur den Monat zu speichern.
Wie wäre es eine weitere Variable $yearNow einzuführen?
Zusammen mit den Vorschlägen von dedlfix ergäbe dies dann:
»»<form>
> <select name="month">
> <?php
> $months = array(null, "Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
> $monthNow = date("m");
# $yearNow hier definieren
# $j = $yearNow;
>
> for($i = i; $i <= 12; $i++)
> {
> if(($i == $monthNow) and ())# und aktuelles Jahr abfragen
> {
# Ausgabe bei value und label entsprechend um die Jahresangabe erweitern
> echo '<option value="' . $i . '" selected>' . $months[$i] . '</option>';
> }
> else
> {
# Ausgabe bei value und label entsprechend um die Jahresangabe erweitern
> echo '<option value="' . $i. '">' . $months[$i] . '</option>';
> }
# lt. dedlfix: wenn max Monate pro Jahr erreicht ist, Jahr hier inkrementieren und Monate nullen (auf 1 setzen).
> }
> ?>
> </select>
»»</form>
Wie gesagt, für den Einsatz von mehreren Jahren in die Zukunft (und Vergangenheit) würde ich es etwas anders aufbauen.
Cheers,
Baba