PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : <select...>: Mehrfachauswahl


Willow
19.11.2003, 17:39:35
laut münz ist es möglich, in einer <select>-liste eine mehrfachauswahl zuzulassen (mit dem "multiple" im select-tag.

was ich nicht hinkriege: bei absenden des formulars kriege ich aber immer nur EINE eingabe - also nie ALLE angeklickten "optionen".

was mache ich falsch?

direkt von münz übernommen:

<form action="sichern.php">
<p>
<select name="top5" size="5" multiple>
<option>Heino</option>
<option>Michael Jackson</option>
<option>Tom Waits</option>
<option>Nina Hagen</option>
<option>Marianne Rosenberg</option>
</select>
</p>
<input type="submit" value=" Absenden ">
</form>

ergebnis: immer nur die letzte der angeklickten optionen!

Gweilo
19.11.2003, 18:14:55
hm. weiss nicht, ob's daran liegt, aber mach mal einen value rein.


<select name="vfid[]" size="10" multiple>
<option value="15">aaa</option>
<option value="5">bbb</option>
<option value="4" selected>ccc</option>
<option value="14">ddd</option>
</select>


Und vergiss die eckigen Klammern nicht, nach dem Namen, sonst kannst du die Werte nicht korrekt auslesen.

sourcecode
19.11.2003, 20:06:30
Es liegt nicht daran, dass kein value verwendet wurde, sondern dass der Variablenname für PHP nicht nach einem Array aussieht. Deshalb: eckige Klammern an den Namen anhängen, dann wird es als Array in PHP gespeichert, welches alle übergebenen Werte enthält.

Willow
19.11.2003, 20:13:09
bingo!!! danke!
die eckige klammer wars!
natürlich - wie sonst als in einem array sollte das ergebnis übermittelt werden?!

wobei es völlig egal ist, ob mit oder ohne "value" - wenn kein value-wert angegeben wird, dann wird der ausgewiesene text als wert übermittelt, mit "value"-wert natürlich dieser!

danke nochmals!

ps: ist übrigens ein fehler bei münz! denn dort FEHLT die eckige klammer (obwohl sie ja eigentlich logisch ist!)

danke!

sourcecode
19.11.2003, 20:44:51
Dort fehlt sie nicht zwangsläufig. Wenn jetzt eine andere Applikation als PHP das Formular verarbeitet, kann es ja auch ohne funktionieren (sogar mit PHP, wenn Methode "GET" und regular expressions verwendet werden: $_SERVER['QUERY_STRING']). Zufälligerweise gabs erst vorgestern genau das gleiche Problem: http://www.selfphp.info/forum/showthread.php?s=&threadid=6125

lasso
03.02.2005, 10:20:16
Hallo

Ich habe das Ganze auch wie oben gelöst (eckige Klammern, etc.), bei mir wird aber anstatt der ausgewählten Werte immer nur das Wort "Array" übergeben. Wo liegt der (wohl peinliche) Denkfehler??

Danke und Gruss
Lasso

c4
03.02.2005, 10:26:03
Zeig mal Code, HTML und PHP.

lasso
03.02.2005, 10:33:08
Zuerst

<form method="post" action="adressenadmin.php">


später in diesem form


<tr>
<td>Funktionen:</td>
<td><select name="A[]" size="4" multiple>
<option>Team A</option>
<option>Team B</option>
<option>keine Lizenz</option>
<option>Zeitnehmer</option>
</select>
</td>
</tr>


zu Testzwecken schaue ich mir momentan mit echo $A; an, was die Ausgabe ist, eben "Array"...

c4
03.02.2005, 10:35:03
Original geschrieben von lasso
zu Testzwecken schaue ich mir momentan mit echo $A; an, was die Ausgabe ist, eben "Array"... ...und genau so ist es auch richtig was Du siehst!

Nimm mal print_r($A)

lasso
03.02.2005, 10:43:21
natürlich! mit echo $A[0] bspw. wird ebenfalls der richtige Wert ausgegeben! grrrr.... ;-)

Danke!!!

c4
03.02.2005, 10:43:54
Macht nix, ist noch früh... ;)