DB Einträge beim Auslesen Optgroup zuweisen
inspiron
- php
In diesem Selectfeld soll nach dem Absenden die getroffene Auswahl wieder markiert sein. Das funktioniert.
Für die Selectfelder sind in der DB Tabelle einige "*" (siehe Bsp.) zur optischen Trennung gespeichert.
Wie kann man beim Auslesen diese Einträge einem Optgroup zuweisen?
Mein Versuch klappt nicht.
Gruß
Bitte auswählen!
PP1.1
PP1.2
PP1.3
* <--------- Gruppierung mit Optgroup
PP2.1
PP2.2
PP2.3
* <--------- Gruppierung mit Optgroup
FW3.1
FW3.2
<select class="select_mac" name="ort" id="ort" >
<optgroup label="Ort">
<?php
$sql = "SELECT ort FROM dropdown_ort ";
$result = mysql_query($sql);
// für jeden Eintrag ein Option-Tag erstellen
while ($arrort = mysql_fetch_array($result, MYSQL_ASSOC)) {
foreach ($arrort as $zeile) {
$sel = isselected($zeile, $_POST['ort']);
//optgroup
if($arrort['ort'] == "*") {
echo '<optgroup label="*">';
} else {
echo '<option value="'.$zeile.'"'.$sel .'>'.$zeile.'</option>';
}
}
}
?>
</optgroup>
</select>
Tach!
Mein Versuch klappt nicht.
Wenn du den Fehler nicht anhand von Codebetrachtung findest, ist Debugging der nächste Schritt. Kontrollausgaben mit echo, print_r() und var_dump() zeigen dir die Unterschiede zwischen Wunsch und Wirklichkeit.
dedlfix.
Tach!
Mein Versuch klappt nicht.
Wenn du den Fehler nicht anhand von Codebetrachtung findest, ist Debugging der nächste Schritt. Kontrollausgaben mit echo, print_r() und var_dump() zeigen dir die Unterschiede zwischen Wunsch und Wirklichkeit.
dedlfix.
Alles i.O.
Ich bin schon wieder darauf reingefallen. Nach neustart des Browsers hat es funktioniert.
grrrrr!
Gruß
Hi,
<select class="select_mac" name="ort" id="ort" >
<optgroup label="Ort">
<?php$sql = "SELECT ort FROM dropdown_ort ";
$result = mysql_query($sql);
// für jeden Eintrag ein Option-Tag erstellen
while ($arrort = mysql_fetch_array($result, MYSQL_ASSOC)) {foreach ($arrort as $zeile) {
$sel = isselected($zeile, $_POST['ort']);//optgroup
if($arrort['ort'] == "") {
echo '<optgroup label="">';
} else {echo '<option value="'.$zeile.'"'.$sel .'>'.$zeile.'</option>';
}
}
}
?>
</optgroup>
</select>
besser wäre es, wenn du den durch PHP generierten HTML-Output in einer Variable sammeln und dann ausgeben würdest, statt jeweils mit echo zu arbeiten.
Zb. in einem Array (verkürzt und simplifiziert):
$output = array();
$output[] = '<option value="'.$zeile.'"'.$sel .'>'.$zeile.'</option>';
$output[] = '</optgroup>';
$output = implode("", $output);
Tach!
besser wäre es, wenn du den durch PHP generierten HTML-Output in einer Variable sammeln und dann ausgeben würdest, statt jeweils mit echo zu arbeiten.
Warum wäre das besser?
dedlfix.
Hi,
besser wäre es, wenn du den durch PHP generierten HTML-Output in einer Variable sammeln und dann ausgeben würdest, statt jeweils mit echo zu arbeiten.
Warum wäre das besser?
Trennung Logik-Präsentation. Ich sprach allgemein.