Im Formular als Option Datenbankinhalt einbauen
B-18Plus
- php
Abnd,
ich möchte ein Formular erstellen in dem man als Option Inhalte aus meiner Datenbank wählen kann.
Leider habe ich keinen Schimmer wie das funktionieren könnte.
Wäre klasse wenn mir da jmd. beim Code helfen könnte...
---------------------------------
<form method="post" action="galerie_ansicht_02.php">
<?php
include 'connect.php';
$res1 = mysql_query("SELECT ordner FROM galerie");
if (!$res1)
{
echo "Ein Fehler ist aufgetreten.\n";
}
else
{
while ($row = mysql_fetch_array($res1))
{
// Hier muss dann wohl der Code rein (option..)
}
mysql_free_result($res1);
}
include 'disconnect.php';
?>
<br>
<input name="galerie_ansicht" type="submit" id="schreiben" value="Ordner ansehen">
</form>
--------------------------
Vielen Dank!!
Hello,
<form method="post" action="galerie_ansicht_02.php">
<?php
include 'connect.php';
$res1 = mysql_query("SELECT ordner FROM galerie");
if (!$res1)
{
echo "Ein Fehler ist aufgetreten.\n";
}
else
{
$_options = array();
while ($row = mysql_fetch_assoc($res1))
{
// Hier muss dann wohl der Code rein (option..)
$_options[row[$id]] = $row['spaltenname'];
}
mysql_free_result($res1);
}
# und hier kannst Du dann aus dem Array $_options das HTML fürs Select-Element aufbauen:
# besser ist aber, Du machst eine Funktion daraus.
$html = " <select>\r\n";
foreach ($_options as $optionkey => $optiontext)
{
$html .= " <option .... >\r\n ## das musst Du mal selber fertig machen
}
$html = " </select>\r\n";
nur ao als Skizze ...
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg
Abnd, erstmal vielen Dank für deine Ausführungen. Das meiste habe ich mehr oder weniger verstanden, nur den letzten Teil (s.u.) habe ich nicht so richtig geblickt.
-------------------------------
$html = " <select>\r\n";
foreach ($_options as $optionkey => $optiontext)
{
$html .= " <option .... >\r\n ## das musst Du mal selber fertig machen
}$html = " </select>\r\n";
------------------------------
Jedenfalls sieht mein Code jetzt wiefolgt aus, das Problem dabei ist dass mir momentan als Auswahlmöglichkeit nur der Eintrag mit der höchsten ID zur verfügugn steht...
------------------------------
<form method="post" action="galerie_ansicht_02.php">
Ordner(Spiel):
<?php
include 'connect.php';
$res1 = mysql_query("SELECT ordner FROM galerie");
$res2 = mysql_fetch_row( $res1 );
$res3 = $res2[0];
if (!$res1)
{
echo "Ein Fehler ist aufgetreten.\n";
}
else
{
$_options = array();
while ($row = mysql_fetch_assoc($res1))
{
$_options = $row['ordner'];
}
echo "<select name="ordner" size="1">";
echo "<option>";
echo $_options;
echo "</option>";
echo "</select>";
mysql_free_result($res1);
}
include 'disconnect.php';
?>
<br>
<input name="galerie_ansicht" type="submit" id="schreiben" value="Ordner ansehen">
</form>
----------------------------
Vielen dank für die hoffentlich folgende Hilfe!
Hello,
[...]
das ist ja auch falsch.
Warum hast Du denn nicht meine Passage fertig gemacht?
http://de.selfhtml.org/html/formulare/auswahl.htm
$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";
Dann brauchst Du nur noch $html an geeigneter Stelle auszugeben.
Und mach aus der obien Passage ruhig eine Funktion!
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg
Abnd,
$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..."
Grüße aus Aachen
Benjamin
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