Multiselect mit Werten aus der Datenbank markieren

Elena Gilbert
Problembeschreibung:
Ich habe im Profil eine Multiselect Box erstellt. Ich hab es auch schon geschafft die ausgewählten Werte mit Komma getrennt in das Datenbankfeld zu speichern, also so halb. Es wird nichts gespeichert sobald irgendwo ein Umlaut auftaucht. Und ich schaffe es einfach nicht, dass die gespeicherten Werte wieder in der Box markiert werden, wenn ich das Profil editieren will. Hat jemand eine Idee?

verwirrt
Schrimm
Hallo,

Was die "Umlaute" betrifft:
Hat deine Datenbank dasselbe Charset, wie dein php-Script?
Wenn nicht, kann es da zu Problemen kommen.

Zur Selektierung der einzelnen Werte:
Du könntest dir Mal die Funktion der "acp/board.php" ansehen, die dafür zuständig ist, dass die richtigen Rechte in der "acp/templates/board_edit.htm" vorausgewählt werden. Augenzwinkern
Elena Gilbert
Meinst du die makeoption Funktion? Die hab ich schon entdeckt, aber ehrlich gesagt noch nicht wirklich durchschaut...ich habs zwar schon hin bekommen, dass die Werte dort stehen, es wird aber nix gespeichert.
Schrimm
Hallo,
Ja, die ist gemeint.
Schau dir jene Funktion doch mal, wie sie definiert ist, dann sollte es eigentlich klar sein.
Elena Gilbert
nein sie ist mir nicht klar..sonst hätte ich nicht danach gefragt.
Schrimm
Hallo,

Dann sehen wir uns die Funktion in der "acp/lib/functions.php" mal genauer an:
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
function makeoption($value,$text,$selected_value="",$selected=1,$style="") {
 $option_selected="";
 if($selected==1) {
  if(is_array($selected_value)) {
   if(in_array($value,$selected_value)) $option_selected=" selected";
  }
  elseif($selected_value==$value$option_selected=" selected";
 }
 return "<option value=\"$value\"".ifelse($style!=""," style=\"color:$style\"").$option_selected.">$text</option>";
}


$value ... Beschreibt den Wert, den die "Variable" haben kann.
$text ... Beschreibt den Namen, mit der der Wert im "Select"-Feld angezeigt wird.
$selected_value ... Beschreibt genau jenen Wert, der bereits ausgewählt wurde.
$selected ... Beschreibt, ob der Wert vorausgewählt wird oder nicht.
$style ... Beschreibt Stylingeigenschaften, die getroffen werden können.

Wichtig ist, dass "$selected" den Wert "1" hat, damit eine Vorauswahl stattfindet.

Ist die Funktion nun klarer?