Hallo!
Dass das "hässlich" ist, weiß ich. Wie kann man so etwas anders umsetzen?
- Indem man sich nicht wiederholt (Don’t repeat yourself – DRY), sondern eine for-Schleife benutzt, um die option-Elemente zu erzeugen. Grundlage kann eine Datenstruktur, z.B. ein Array mit (assoziativen) Arrays sein. Oder die Schleife zählt einfach Zahlen hoch. Dabei entsteht meist ein HTML-String, den man dann ausgibt.
$selected = 5;
$html = '';
for ($i = 1; $i <= 5; $i++) {
$html .= '<option value="' . $i . '"' . ($i == $selected ? ' selected' : '') . '>' . $i . "</option>\n";
}
echo $html;
Disclaimer: Ich kann kein PHP. Ungetesteter beispielhafter Code.
-
Mit Templating-Sprachen, die das Notieren von Wiederholungen vereinfachen. Sie sorgen auch für das korrekte Escaping von Werten. Ist nicht so hässlich wie das händische Zusammenbauen von Strings (siehe oben).
-
Mit objektorientierter Programmierung. Mit Formular-Widget-Klassen, die eine Datenstruktur entgegennehmen und das entsprechende HTML rendern. PHP-Webframeworks bringen sowas mit sich.
Grüße
Mathias