Hallo zusammen,
ich habe ein kleines Problem das meine Fähigkeiten momentan übersteigt.
ich habe in meinem Adminbereich ein selectfeld bei dem ich eine mehrfachauswahl machen kann:
PHP-Code:
<?php
echo (" <td width=\"60%\"> <select name=\"zusatzstoffe[]\" size=\"$stoffeanzahl\" class=\"field\" multiple>\n");
echo (" <option value=\"\" selected>\n");
/* -=-=-= Zusatzstoffe in die Selectbox einlesen =-=-=- */
for($i = 0; $i < $anzahl; $i++) {
$datensatz = mysql_fetch_row($query);
echo (" <option value=\"$datensatz[0]\">".$datensatz[0]." ".$datensatz[1]."\n");
}
echo (" </select>\n");
echo (" </td>\n");
?>
Die mehrfach auswahl ist möglich und das schreiben in die Datenbank auch. Das realisiere ich so:
PHP-Code:
<?php
for ($i = 0; $i < sizeof($zusatzstoffe); ++$i) {
$optionensammler .= $zusatzstoffe[$i] . " ";
}
?>
Das funktioniert auch. Ich habe dann in der Datenbank in dem dazugehörigen Feld z.B. so was stehen:
1 2 3 4 (alles durch ein leerzeichen getrennt)
So nun möchte ich das ja auch wieder bearbeiten/ändern können und somit wieder in das selectfeld einlesen und natürlich erhaltene Werte vorselektieren!
PHP-Code:
<?php
$query = mysql_query("SELECT * FROM ".$tblprfx."speisen_stoffe ORDER BY id", $verbindung);
$anzahl = mysql_num_rows($query);
$stoffeanzahl = $anzahl + 1;
echo (" <td width=\"60%\">\n");
echo (" <select name=\"zusatzstoffe[]\" class=\"field\" size=\"$stoffeanzahl\" multiple>\n");
echo (" <option value=\"\"></option>\n");
for($i = 0; $i < $anzahl; $i++) {
$selektieren = mysql_fetch_row($query);
if($selektieren[0] == $datensatz[4])
{
echo(" <option value=\"$selektieren[0]\" selected>$selektieren[1]</option>\n");
} else {
echo (" <option value=\"$selektieren[0]\">$selektieren[1]</option>\n");
}
}
echo (" </select>\n");
echo ("
\n");
echo (" </td>\n");
?>
Und hier liegt das Problem, ich bekomme ein <option value...> vorselektiert solange nur ein Ergebnis in der Datenbank steht. Sprich steht da eine 1 wird z.B. Geschmacksverstärker auf selected gesetzt. habe ich nun mehrere werte durch ein leerzeichen getrennt dastehen passiert nichts.
Wer kann mir helfen?
Danke im voraus.
Greetz Marco
*UPDATE*
ich habe auch das mal an stelle der for-schleife versucht:
PHP-Code:
<?php
while ($selektieren = mysql_fetch_row($query)) {
$selected="";
$auswahl = explode (" ", $selektieren[0]);
if (in_array($datensatz[4],$auswahl))
$selected="selected";
echo(" <option value=\"$selektieren[0]\" $selected>$selektieren[1]</option>\n");
}
?>
jedoch bekomme ich nur eine option selected sofern nur ein element im array steht! habe ich mehrere drin stehen ist nichts vorselektiert.
danke im voraus