Weiß nicht wie ich das beschreiben soll

@reptiler

Ich habe nicht viel Ahnung von javaScript! (eigentlich 0,000001%) ^^

Zital von reptiler:

Falls sich bis morgen nichts gefunden hat werd ich mal was rumprobieren.


@nero_85

Na bumm. Dankeschön für die schnelle Hife. Werde es versuchen.

MFG DÖNERMAN
 
Nein Nein! Ss funkt noch nicht! Aber laut Ultraflip habe ich den "Schlechtester Titel des Monats"!!

Das habe ich geschafft! ^^
 
Ich hab jetzt grad mal was rumgetestet.

Dazu hab ich ein Select-Feld mit Mehrfachauswahl genommen.
Also das hier:
HTML:
<select multiple>

Es scheint als wuerde dabei nur ein Wert uebergeben werden, was ich erstmal nicht so prickelnd finde und das irgendwie auch den Sinn der Mehrfachauswahl vollkommen wegfallen laesst.

Hier der Code:
selecttest.php
HTML:
<?php
echo nl2br(print_r($_POST,true));
?>
<form method="post" action="selecttest.php">
<select name="multi" multiple>
<option value="a">a</option>
<option value="b">b</option>
<option value="c">c</option>
<option value="d">d</option>
<option value="e">e</option>
</select>
<input type="submit">
</form>
Dieses "Multi-Select" zu nutzen waere ja erstmal naheliegender als eine Textarea, wie Du es gemacht hast. Allein weil man einzelne Elemente leichter auswaehlen kann.
Nur ist es jetzt natuerlich irgendwo traurig zu sehen, dass offensichtlich nur einer der ausgewaehlten Werte uebergeben wird.

Nachtrag:
Ich hab das ganze jetzt mal von POST nach GET umgestellt und sehe in meiner Adressleiste folgendes:
Code:
http://localhost:8080/selecttest.php?multi=b&multi=c&multi=d
Es werden also wohl doch alle ausgewaehlten Elemente uebergeben, jedoch scheint PHP damit nicht so ganz klarzukommen, da ja sozusagen 3 Variablen mit dem gleichen Namen uebergeben werden.
Man koennte sich vorstellen, dass PHP dies so verarbeitet:
PHP:
$_GET['multi']="b";
$_GET['multi']="c";
$_GET['multi']="d";
Was natuerlich erklaert warum bei der Ausgabe von $_GET, oder im Beispiel weiter oben $_POST, nur d rauskommt, obwohl b,c und d ausgewaehlt sind.

Der einzige Weg den ich nun sehe dies richtig auszuwerten waere den Querystring von Hand zu zerlegen und alles was multi heisst in ein Array zu packen.
Das "Problem" dabei ist nur, dass das alles dann ueber GET laufen muss. Ob sich da was mit POST machen laesst kann ich jetzt noch nicht sagen. Jedoch wuerde der Weg auf jeden Fall anders aussehen da dort nicht mit dem Querystring gearbeitet werden kann.

Nachtrag 2:
Ich hab jetzt den Code soweit angepasst, dass ich ein Array bekomme welches die ausgewaehlten Werte bekommt. Wie gesagt, das funktioniert nur mit GET.

PHP:
<?php
$multi=array();
$parts=explode("&",$_SERVER['QUERY_STRING']);
for ($x=0;$x<count($parts);$x++)
	{
		$parts[$x]=explode("=",$parts[$x]);
		if ($parts[$x][0]=="multi")
			{
				$multi[]=$parts[$x][1];
			}
	}
echo nl2br(print_r($multi,true));
?>
<form method="get" action="selecttest.php">
<select name="multi" multiple>
<option value="a">a</option>
<option value="b">b</option>
<option value="c">c</option>
<option value="d">d</option>
<option value="e">e</option>
</select>
<input type="submit">
</form>
 
Zuletzt bearbeitet:
Du versuchst ja auch 3 verschiedene Werte in ein Feld einzutragen..... und dabei wird halt nur der zuletzt übergebene Wert eingetragen.
Ich würde mit <option name="bla"..... arbeiten, dann hat jedes Optionsfeld einen eindeutigen Namen, value="bla" ist ja nur der Wert.
 
Wird der Name nicht dem Select zugewiesen und nicht der Option.
Die Option bestimmt ja eigentlich nur den Wert den das Select im Endeffekt hat, oder?

Nachtrag: Ich hab das grad mal probiert und es scheint nichts zu bringen der Option einen Namen zu geben.
 
Ja und Nein, dass Problem ist das Multiple.
Bei einer aufklappbaren Optionsliste ist es nicht das Ding, da kannst Du ja nur eine Auswahl treffen..... und somit wird auch nur dieser Wert übergeben.
Nun übergibst Du aber mehrere Werte und die werden so lange abgefragt bis nichts weiter kommt..... und PHP arbeitet nunmal nicht nach dem Motto "wer zuerst kommt malt auch zuerst"..... sondern umgekehrt. ;)
 
Zurück