PHP Daten aus Select-Liste lesen

mcdave

Grünschnabel
Ich hätte eine Frage!

Wie kann ich hier, die ausgewählten Daten auf der nächsten Seite ausgeben?

Wäre froh um eure Hilfe!



<form action="suche.php">
<select name="avar[]" size="10" multiple>
<?php
$db = mysql_connect ("localhost", "root", "")
or die ("<h1>Keine Verbindung möglich: </h1><p>" .mysql_error());

mysql_select_db("test") or die ("Datenbank korrupt oder nicht vorhanden!");
$sql = "SELECT * FROM test";
$res=mysql_query($sql);
while ($row = mysql_fetch_array($res))
{
$tabelle = $row['Name'];
echo "<option name=\"tabelle\" value=\"$tabelle\">$tabelle</option>";
}
?>
</optgroup>
</select>
<input name="doit" type="submit" value="Los"/>
</form>
 
Hallo und willkommen im Forum.

Verwende bitte in Zukunft die Code-Tags, in deinem Falle [code=php].

Versuch es doch mal so:
PHP:
<?php
/** suche.php **/

$selectedValues = $_GET['avar'];

foreach($selectedValues as $selectedValue)
{
  echo "Gewählt: $selectedValue<br/>";
}
?>

Sollte so funktionieren.

Vielleicht solltest du dein Form zukünftig auch mit einem Methoden-Attribut versehen:

HTML:
<form action="suche.php" method="post">
...

Wenn keine Methode angegeben ist, wird standard-mäßig GET verwendet, wenn ich das richtig in Erinnerung habe.
 
hey Viellen Dank

Aber leider erscheint folgende Fehlermeldung.


Warning: Invalid argument supplied for foreach() in C:\Temp\xampp\htdocs\A\suche.php on line 6
 
Dann wurde anscheinend überhaupt keine der Optionen ausgewählt? In diesem Fall muss natürlich noch eine Prüfung rein:

PHP:
<?php
/** suche.php **/
 
$selectedValues = $_GET['avar'];
 
if(isset($selectedValues) && count($selectedValues)) 
{
  foreach($selectedValues as $selectedValue)
  {
    echo "Gewählt: $selectedValue<br/>";
  }
}
?>

EDIT: Mir ist grad noch aufgefallen, dass es sein könnte, das du beherzigt hast, was ich über die Methode im Form geschrieben habe. In diesem Falle musst du statt $_GET natürlich $_POST verwenden.
 
Zuletzt bearbeitet:
Zurück