Dieter Raber: Auswahlliste: Mehrere Einträge vorselektieren

Beitrag lesen

Hallo Nadja,

Ich versuche mal, das etwas schematischer zu erklaeren. Stell dir vor du hast ein Array mit allen Werten fuer die Selectbox, das sieht so aus (ich unterstelle mal, Werte und Text sind unterschiedlich, das spielt aber spaeter keine Rolle):

  
$alle_paare = array('a_value' => 'a_text',  
                    'b_value' => 'b_text',  
                    'c_value' => 'c_text',  
                    'd_value' => 'd_text',  
                    'e_value' => 'e_text',  
                    'f_value' => 'f_text');  

Dann hast du ein zunaechst leeres Array, auf dessen Inhalt wir spaeter noch kommen werden:

  
$gewaehlte_paare = array();  

Jetzt bildest Du die Optionen in einer Schleife aus Array $alle_paare und beruecksichtigst hierbei die Werte aus $gewaehlte_paare:

  
$selectbox  = "<select name=\"meine_paare\">\n";  
foreach ($alle_paare as $wert => $text)  
{  
  // wenn der entsprechende Wert in $gewaehlte_paare vorhanden, auswaehlen  
  $selected = in_array($wert, $gewaehlte_paare) ? ' selected="selected"' : '';  
  $selectbox  .= '<option value="' . $wert . '"' . $selected . '>' . $text . "</option>\n";  
}  
$selectbox  . = "</select>\n";  

Nach dem Posten kopierst du die ausgewaehlten Paare in das Array $gewaehlte_paare. Die Zeile

  
$gewaehlte_paare = array();  

musst du also ersetzen durch

  
$gewaehlte_paare = !empty($_POST['meine_paare']) ? $_POST['meine_paare'] : array();  

Gruß,

Dieter