Select Feld innerhalb einer Schleife überprüfen

waswiewo

Erfahrenes Mitglied
Hallo PHP-Freunde,

ich steh grad ein wenig auf dem Schlauch.

Folgender Code, den ich in meinem Registrierungs-Formular habe, funktioniert 1A:

Code:
<option value="m&auml;nnlich"<?php echo((!empty($_POST['sex']) and ($_POST['sex'] == 'männlich')) ? 'selected' : ''); ?>>m&auml;nnlich</option>

Wenn ein Fehler auftritt, dann bleibt die Auswahl "männlich" in dem Select.

Nun nutze ich aber bei der Geburtstags-Angabe eine Schleife für die Options-Felder.

Wie kann ich hier die select-Überprüfung mit einbauen:

Code:
<?php
                for($i = 1; $i < 32; $i++) {
                    echo "\t\t<option value=\"$i\">";
                    echo $i;
                    echo "</option>\r\n";
                }
?>

Mein Versuch:

Code:
<?php
                for($i = 1; $i < 32; $i++) {
                    echo "\t\t<option value=\"$i\"";
                    echo ((!empty($_POST['birth'][0]) and ($_POST['birth'][0] == '$i')) ? 'selected' : '');
                    echo ">";
                    echo $i;
                    echo "</option>\r\n";
                }
?>

So, wie ich es oben gemacht habe, geht es nicht. Es wird aber auch kein Fehler ausgespuckt. Auch mein Editor meckert nicht.

Irgendwie sehe ich grad vor lauter Bäumen den Wald nicht mehr...

Über jeden kleinsten Hinweis bin ich dankbar!

Mfg und gute Nacht

waswiewo
 
Zuletzt bearbeitet:
Sind auch nur zwei kleine "Bäume" die Probleme machen.

PHP:
<?php
// diese Zeile
echo ((!empty($_POST['birth'][0]) and ($_POST['birth'][0] == '$i')) ? 'selected' : '');
// ändern in
 echo ((!empty($_POST['birth'][0]) and ($_POST['birth'][0] == $i)) ? 'selected' : '');
?>

Der Unterschied ist das bei dem Vergleich die Variable $i nicht in einfachen Anführungszeichen steht.
 
Danke tombe! Genau diese beiden fiesen Bäume waren es! Nen dämlicher Fehler, wobei ich eigentlich weiß, dass es so nicht darf. Naja, war schon spät, ne xD

@Tim Bureck: Danke für den Link!

MfG
 
Zurück