Optionsfeld Anzeigen/Arraywerte als SELECTED anzeigen

lano

Grünschnabel
Moin allerseits.

Habe ein in einem Formular ein Optionsfeld (<select>) mit MULTIPLE, also Mehrfachauswahl.
Diese Werte werden aus einer SQL-DB gelesen und angezeigt.
Nun muss ich das Formular mehrfach neu laden lassen, da weitere spezifische Daten nachgeladen werden müssen.
Nun ist mir an diesem Punkt nicht klar, wie ich die Optionsfelder nach dem erneuten Laden des Formulars als <selected> anzeigen lassen kann.
Die gewählten Optionen liegen als array vor.

Hier die Problemseite
(pagesite de vu)



Gruss

LaNo
 
Du hängst den namen des <select>'s einfach [ ] an. Damit übergibst du ein Array.

Beim erneuten Laden überprüfst du einfach für jedes <option> ob der Wert mit einem Wert im Array übereinstimmt. Wenn ja hängst du im Tag einfach "selected" an:

PHP:
//für die erste option:
foreach($_POST['selectname'] as $selectname){
    if($selectname == "optionvalue"){
         $option1="<option value="optionvalue" selected>optionname</option>
    }else{
         $option1="<option value="optionvalue">optionname</option>
    }
}

und danach im <select>:

PHP:
echo "<select name="selectname[]">
         ".$option1."
         ".$option2."
               .
               .
               .
       </select>";

Der Nachteil ist, dass es ziemlich umständlich ist und wenn du 10 solcher <option>'s hast dann wir der Code ziemlich aufgeblasen. Aber momentan fällt mir leider nichts besseres ein.
 
Zurück