Tom: Im Formular als Option Datenbankinhalt einbauen

Beitrag lesen

Hello,

$html  = "    <select name="myselect[]">\r\n";

foreach ($_options as $optionkey => $optiontext)
       {
           $html .= "        <option value="$optionkey">".htmlspecialchars($optiontext,ENT_QUOTES)."</option>\r\n";
       }

$html .= "    </select>\r\n";

Kleine Frage dazu:

foreach ($_options as $optionkey => $optiontext)
--> was genau wird hier gemacht?
mal davon abgesehen bekomme ich wenn ich das so einbinde folgenden Fehler: "Warning: Invalid argument supplied for foreach() in..."

*arrgh*

Foreach() übernimmt nimmt ein Array in der Variable $_options. Das muss vorher darin aufgebaut worden sein. Die Meldung, die Du bekommen hast, deutet darauf hin, dass in $_oprions _kein_ Array vorhanden war oder $_options überhaupt nicht angelegt worden ist.

Dieses Array arbeitet foreach() nun in der ersten Ebene Element für Element ab und übergibt dieses als Kopir an die Variablen für [key] => value,  hier von mir $optionkey und $optiontext genannt.

Mit diesen kann dann in der foreach()-Schleife gearbeitet werden.

Du musst also zuerst Deine Abfrage durchführen, wie Du das auch schon vollkommen richtig gemacht hattest. Nach der Abfrage überführst Du durch die Schleife  "while($_row = mysql_fetch_assoc($res))"  die Werte aus dem Abfrage-Puffer in das Array $_options.

lass Dir das nach der Übertragung doch einfach mal anzeigen:

echo "<pre>\r\n";
   echo htmlspecialchars(print_r($_options,1));
   echo "</pre>\r\n";

Und dann übergibst Du das Array $_options an Deine Funktion (die Du hoffentlich nun aus dem Stückchen Code gemacht hast) und lässt Dir mit Hilfe von foreach() die html-Variable für das Select aufbauen.

Wenn Du Dir solche kleinen Helferlein (Funktionen) für den Aufbau von HTML-Code aufbaust, kannst Du die vermutlich immer wieder benutzen. Was in der Funktion dann 10 bis 20 Zeilen beansprucht, benötigt nachher im Script dann nur noch ein bis drei Zeilen in der Anwendung.

Versuch noch mal, den kompletten Code aufzubauen und poste ihn dann nochmal komplett und sauber formatiert :-)

Liebe Grüße aus Syburg bei Dortmund

Tom vom Berg

--
Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de