Auswahllisten Zweckentfremdet
-
Hallo,
ich habe zwei Auswahllisten (select), welche ich allerdings nicht zu ihrem eigentlichen Zweck benutze, sondern bei welchen ich mittels zweier Buttons die einträge hin und her schieben kann. Wird die Form nun abgeschickt werden natürlich nur selektiere Einträge übermittelt, meine Intention ist es aber natürlich das alle Einträge aus einer der Auswahllisten verschickt werden.
Als einzige Möglichkeit das zu realisieren fällt mir ein, vor dem Submit alle Einträge per js zu selektieren, ist aber keine schöne variante.Wenn jemandem eine andere Möglichkeit bekannt ist das zu erreichen möge er es bitte hier posten.
Danke
-
Du könntest ein Hidden-Field für Deine Liste bereitstellen, wo beim Hinzufügen eines Eintrags in die Liste ein Wert an das Hidden-Field angefügt wird. Beim Entfernen des Eintrags müsstest Du natürlich auch den Eintrag im Hidden-Field entfernen.
Oder aber: Du füllst das Hidden-Field erst beim Submit, in dem Du per JS durch die gewünschte Liste läufst und den Wert für's Hidden-Field zusammenbaust, z.B. in der Form: "1|3|5|6|7|...", wobei die Zahlen die IDs der Einträge sind (falls diese IDs haben), ansonsten halt die Einträge an sich, dann musst Du nur darauf achten, dass Du als Trennzeichen eins nimmst, welches in keinem Eintrag vorkommt.
In dem verarbeitendem Script kannst Du dann einfach nach dem Trennzeichen splitten und hast Dein gewünschtes Array mit den entsprechenden Einträgen.
Also in der Form: (nur sinngemäß, hab's nicht getestet):
<script type="text/javascript"> function buildHiddenField(myList, myHidden) { var items = new Array(); for (i = 0; i < myList.options.length; i++) { items[i] = myList.options[i].value; } myHidden.value = implode('|', items); // ka, wie's hier richtig heißt :D } </script> ... <form ... onSubmit="buildHiddenField(theList, theHidden);"> ... </form>
Hoffe Du weißt, was ich meine.
-
ja, stimmt, so ginge das natürlich auch. Danke erstmal, ich werd ma gucken ob das besser aussieht.