Auswertung multiple Listenfelder

Hallo,
wieder ein Problem. Wenn ich ein Listenfeld erstelle, mit

<select name="test" multiple size="4">
<option value="1">Erstens
<option value="2">Zweitens
...

dann wird beim Versand zu z.B. List.php für $test, wenn ich mehrere auswähle, nur der letzte Wert, der bei option angegeben wurde(sofern er markiert wurde) ausgegeben. Gibt es eine Möglichkeit alle zu addieren oder noch besser alle einzeln(z.B. in einem Array) zu speichern?
 
eigentlich dasselbe Prinzip wie bei Chechboxen:
PHP:
//Die Listbox:
<select name="test[]" multiple size="4">
<option value="1">Erstens</option>
<option value="2">Zweitens</option>
...
</select>

PHP:
<?php
//gibt alle ausgewählten Elemente aus
foreach($_POST['test'] as $auswahl) {
    echo $auswahl;
}

//falls du das Formular nicht per POST sendest, dann muss du natürlich $_POST['test'] durch z.B. $_GET['test'] ersetzen...
?>
 
Multiples Feld in DB schreiben

Hallo,

dann möchte ich mir hieran auch mal beteiligen, bevor ich einen neuen Thread öffne.

Um bei dem obigen Beispiel zu bleiben, würde ich dann gerne die Auswahl in eine Datenbank schreiben. Das heisst, der Inhalt des Test-Array's.

Soweit ich weiss, könnte ich den Inhalt nun in eine Variable vom Typ String schreiben (Z.B. mit foreach). Doch hierbei erhalte ich einen String in dem alle Daten dann am Stück drinnen stehen. Ich würde aber gerne die Werte mit Komma getrennt im Strin stehen haben, also 1, 2, ...

Ich habe es probiert mit folgender for-Schleife, doch leider stimmt die Syntax nicht und ich erhalte einen Parser Error.

Anbei mal das Codestückchen:
PHP:
<?php
	if (isset($_POST["suchen"])){
/*	foreach ($_POST['test'] as $auswahl) {
   	echo $auswahl;
	}*/
		$string = "";
		$string .= $_POST['test'[0]];
		for ($i=1; $i<sizeof($_POST['test']); $i++) {
	  		$string .= ", ";
	  		$string .= $_POST['test'[$i]];
		}
	}
?>

Dazu ziehe ich den ersten Wert aus dem Array vor der For-Schleife und falls noch Werte kommen, werden diese mit Komma in den String geschrieben.

Vielleicht kennt jemand eine bessere, geschicktere Lösung oder kann mir einen Tipp geben.

Vielen Dank schon mal vorab für eure Hilfe.
 
Das liegt daran, dass deine Syntax des mehrdimensionalen Arrays falsch ist.
PHP:
$_POST['test'[$i]] // FALSCH

$_POST['test'][$i] // RICHTIG
Außerdem noch
PHP:
$string .= ", ";
$string .= $_POST['test'][$i]; 
// Die zwei Zeilen lassen sich zusammenfassen zu
$string .= ", ".$_POST['test'][$i];
 
Zurück