HTML Formular mit Select-Options - vorbelegen mit aktuellem Datum - aber wie?

  • Hallo liebes Forum,
    ich habe mal wieder eine Frage. Meine Google-Versuche haben leider nicht viel gebracht.
    Ein vermutlich simples Problem, das ich aber nicht lösen kann.
    Ich habe ein HTML-Formular mit einer Select-Option Anweisung (als Beispiel die Kalendermonate im Langtext), die ich auswählen kann. Es wird, wie üblich, der erste Eintrag, nämlich der Januar vorausgewählt. Ich möchte aber den AKTUELLEN Monat vorgeschlagen haben. Das Drop-Down für den Monat ist ja noch vertretbar, für die Kalendertage 1-31 eher nicht! Das wäre mein zweites Problem. Gibt es einen besseren Lösungsansatz, um den TAG, den MONAT und das JAHR zur Auswahl anzubieten, dabei aber das Tagesdatum in drei Feldern vorzubelegen?

    Danke für Eure freundliche Unterstützung.

    hier ein Code-Beispiel:

  • Hallo, "option-selected" ist m.E. in diesem Fall nicht möglich, da ich ja bei jedem Aufruf von Select-Options erneut prüfen muss, welcher Eintrag genommen werden soll.

  • So ganz verstehe ich offensichtlich nicht, wo dein Problem ist. Du willst bei Aufruf der Seite - mit dem Formular - das aktuelle Datum vorselektieren. Du hast doch aber immer das aktuelle Datum durch die PHP Abfrage
    $tag = date("d");
    $monat = date("m");
    $jahr = date("Y");

    Was hindert dich daran, diese Daten zu nutzen, um dynamisch mit PHP dein Formular zu aktualisieren und die richtige 'Option' mit 'selected' zu kennzeichnen?

    if(!sleep)

    {$sheep++;}

  • zur Erklärung: ich möchte die Daten aus $tag, $monat, $jahr im Select-Option-Feld AKTUELL vorgeschlagen bekommen, habe aber keine Ahnung, wie der Option-Befehl aussehen muss.

    Beispiel:

    (nimm bitte heute als Vorauswahl: September)

    <select name="monat" size="1">

    <option> select-select=date("m")</option> ODER SO ÄHNLICH !!
    <option> Januar </option>
    <option> Februar </option>
    <option> März </option>
    ....


    Hallo Sailor, ich habe mir Deine Antwort erneut durchgelesen. Gibt es denn die Möglichkeit über PHP dem HTML-Formular vor der Auswahl bereits die Voreinstellung date("m") mitzugeben? Wenn ja, wie denn?

    5 Mal editiert, zuletzt von hpuettma (25. September 2017 um 14:11)

  • Das sollte gehen!
    Habe mein deinen Code von oben etwas modifiziert - schau mal, ob das so etwas ist, wie es dir vorschwebt.

    if(!sleep)

    {$sheep++;}

  • Hallo Sailor,

    genial !!

    tausend Dank für Deine Mühe. Genau das habe ich mir vorgestellt. Jetzt habe ich wirklich ein schönes Beispiel, das nicht nur ich, sondern viele andere PHP-Freunde wiederverwenden können. Im gesamten Internet habe ich ein solches Beispiel vermisst.

    mfG Hans-Werner

    • Offizieller Beitrag

    Nur als kleine Info:

    PHP
    date_default_timezone_set( 'Europe/Berlin' );
    setlocale( LC_ALL, 'de_DE.utf8' );
    
    
    $dt = new DateTime();
    
    
    foreach( range(1,12) as $m ) 
        echo strftime( '%B', $dt->setDate(2017, $m, 1)->format('U') ) . '<br>';


    Ausgabe:


    Auf die Weise wäre das Array überflüssig.
    date() kann allerdings nicht mit den locales umgehen, daher strftime().