Eintrag mit PHP "selecten"

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von Der_Jan, 07.12.2006.

  1. Der_Jan

    Der_Jan Thread Starter MacUser Mitglied

    Beiträge:
    606
    Zustimmungen:
    7
    MacUser seit:
    06.01.2004
    Guten Morgen,:)
    mein CMS hält mich auf Trap...

    Ich habe eine Timer-Funktion, die ich über das Select-Feld Tag auswählen kann. Ich lasse das Select-Feld automatisch generieren über


    PHP:
    <?
    for(
    $i=1$i<32$i++)
    {     
    echo
    "<option value='$i'>$i";
    }
    ?>

    Nun möchte ich diese Schleife erweitern, sodass, sofern im CMS bereits ein Tag eingetragen wurde, dieser als selected im Select-Feld erscheint (also am entsprechenden Tag ein Häkchen gesetzt wird). Also habe ich das ganze wie folgt ergänzt.


    PHP:
    <?
    for(
    $i=1$i<32$i++)
    {     
    echo
    "<option value='$i'"; if ((isset($day))&&($day=='$i')) { echo" selected "; } echo">$i";
    }
    ?>

    Nur leider funktioniert das ganze nicht. Es wird kein entsprechendes select gesetzt. Habt Ihr eine Idee, wo ich den Denkfehler mache??? :(


    Danke!
    Der Jan
     
  2. 2nd

    2nd MacUser Mitglied

    Beiträge:
    8.902
    Zustimmungen:
    242
    MacUser seit:
    25.07.2004
    Wo kommt $day her?

    Ist das ein POST-Formular? Oder ein GET-Formular?

    2nd
     
  3. Der_Jan

    Der_Jan Thread Starter MacUser Mitglied

    Beiträge:
    606
    Zustimmungen:
    7
    MacUser seit:
    06.01.2004
    Das $day ist der Wert, der in der MySQL als Tag bereits gespeichert wurde und es handelt sich um ein POST-Formular.

    Hilft das? :confused:

    Der Jan
     
  4. 2nd

    2nd MacUser Mitglied

    Beiträge:
    8.902
    Zustimmungen:
    242
    MacUser seit:
    25.07.2004
    Und $day existiert zu dem Zeitpunkt auch als Variable mit Inhalt? Mach mal ein echo $day; vor der for..to Schleife und schau nach, welchen Wert $day hat.

    Zur If...then Abfrage: Im Prinzip reicht ja ein

    if ($day==$i) {......}

    Oder wieso hast Du $i in ' ' oben gesetzt? Ändere mal die Bedingung:

    PHP:
    echo"<option value='$i'"; if ($day==$i ) { echo" selected "; } echo">$i"
    Arbeitest Du mit einem XHTML oder HTML Doctype?

    2nd
     
  5. scope

    scope MacUser Mitglied

    Beiträge:
    4.081
    Zustimmungen:
    301
    MacUser seit:
    24.01.2005
    Du musst den Option-Tag auch wieder schließen

    PHP:
    <option value="...">...</option>
     
  6. 2nd

    2nd MacUser Mitglied

    Beiträge:
    8.902
    Zustimmungen:
    242
    MacUser seit:
    25.07.2004
    Hängt vom DOCTYPE und Browser ab. Mit HTML 4.01 fkt. es natürlich auch ohne schliessendes Tag :cool:

    Und Safari schafft auch in XHTML 1.0 das Dokument richtig zu parsen - ohne schliessende Tags.


    2nd
     
  7. Der_Jan

    Der_Jan Thread Starter MacUser Mitglied

    Beiträge:
    606
    Zustimmungen:
    7
    MacUser seit:
    06.01.2004
    Halleluja, es funktioniert!
    Es waren die "Tüttelchen" (=' '), die die Schleife blockiert haben.
    Vielen Dank! :)
    Der Jan
     
  8. scope

    scope MacUser Mitglied

    Beiträge:
    4.081
    Zustimmungen:
    301
    MacUser seit:
    24.01.2005
    Oh, das war mir neu.
    Aber ist es laut XHTML wirklich erlaubt?
     
  9. 2nd

    2nd MacUser Mitglied

    Beiträge:
    8.902
    Zustimmungen:
    242
    MacUser seit:
    25.07.2004
    Nein, das ist ganz schlechtes und inkonsistentes HTML - sollte man nie machen. Unter XHTML ist es natürlich auch nicht erlaubt.

    Ändert aber nichts an der Tatsache, dass solche Schlunzenbrowser wie Safari trotzdem so tun, als ob alles in Ordnung ist :cool:

    2nd
     
  10. scope

    scope MacUser Mitglied

    Beiträge:
    4.081
    Zustimmungen:
    301
    MacUser seit:
    24.01.2005
    Gut, das hatte ich mir fast gedacht.
     

Diese Seite empfehlen