Was übergibt ein SELECT MULTIPLE ?
Fraggy
- php
Also ich programmiere grade eine Funktion in PHP, wo die Werte eine Auswahlfeldes in einem Formular in eine Datenbank geschrieben werden sollen.
Die Übergabe der Variable selbst ist nicht das Problem.
Das Problem liegt vielmehr darin, das bei einer Mehrfachauswahl in dem Listenfeld immer nur ein Wert in der Variablen steht.
Ist das "normal"? Es muß doch möglich sein, in einem Listenfeld mehrere Felder zu selektieren, und an die Variable zu übergeben.
Kann mir jemand sagen wie die Struktur der Variable ist? Im Bezug auf Trennzeichen etc, und warum nur ein einzelner Wert übergeben wird obwohl mehrere Werte ausgewählt werden?
hi,
bei solchen fragen bitte immer erst mal vorhandene ressourcen befragen, hier z.b. http://dclp-faq.de/q/q-formular-select-multiple.html.
gruß,
wahsaga
Hello,
bei solchen fragen bitte immer erst mal vorhandene ressourcen befragen, hier z.b. http://dclp-faq.de/q/q-formular-select-multiple.html.
Der sollte aber genau DIESE Seite mal überarbeiten.
da wird immer noch mit $REQUEST oder mit $HTTP_GET_VARS gearbeitet...
also mach aus dem select-feld ein Array:
<select multiple name="sel[1][]">
dann kommen die Values der Optionen oder die Optionen, wenn es keine values gibt in
$_POST['sel'][1][0] => option 1
$_POST['sel'][1][1] => option 2
$_POST['sel'][1][2] => option 3
...
an.
Liebe Grüße aus http://www.braunschweig.de
Tom
Moin,
Der sollte aber genau DIESE Seite mal überarbeiten.
da wird immer noch mit $REQUEST oder mit $HTTP_GET_VARS gearbeitet...
Du solltest deinen Browsercache mal leeren und die Seite neu abholen:
| Das Script script.php erhält nun diese Variable $_REQUEST['avar']
| (bzw. vor PHP 4.1.0 als $HTTP_GET_VARS['avar']) als Array und kann
| die Werte dieses Arrays aufzählen.
Hello,
Der sollte aber genau DIESE Seite mal überarbeiten.
da wird immer noch mit $REQUEST oder mit $HTTP_GET_VARS gearbeitet...
Du solltest deinen Browsercache mal leeren und die Seite neu abholen:
| Das Script script.php erhält nun diese Variable $_REQUEST['avar']
| (bzw. vor PHP 4.1.0 als $HTTP_GET_VARS['avar']) als Array und kann
| die Werte dieses Arrays aufzählen.
Oh danke, dass Du mir das auf so nette Weise sagst, dass ich blöd bin ;-)
Allerdings kann ruhig auch mit POST arbeiten, denke ich. Soll aber jetzt keine Entschuldigung für schlampertes Lesen sein...
Liebe Grüße aus http://www.braunschweig.de
Tom
DANKE!!!
Ich denke das hilft mir weiter, mal von den "unkonstruktiven" Beiträgen abgesehen.
@wahsaga: Wenn ich die Seite die Du empfiehlst gefunden hätte über Google, hätte ich hier nicht gepostet ;)
Zum Suchbegriff "form select multiple" hatte ich eben an Platz 1 Das selfhtml-Forum, und weil ich hier meist gute und qualitativ hochwertige Auskünfte bekomme hab ich einfach mal gepostet!
Nochmal DANKE an alle !!!
Hi Fraggy,
@wahsaga: Wenn ich die Seite die Du empfiehlst gefunden hätte über Google, hätte ich hier nicht gepostet ;)
Und was ist das erste, wenn man nach "select multiple" sucht? =>http://www.google.com/search?hl=de&ie=UTF-8&q=Select+multiple&spell=1
Zum Suchbegriff "form select multiple" hatte ich eben an Platz 1 Das selfhtml-Forum, und weil ich hier meist gute und qualitativ hochwertige Auskünfte bekomme hab ich einfach mal gepostet!
Ist ja auch richtig so ;-)
Schon ein gutes Forum.
MfG, Dennis.
Moin,
| Das Script script.php erhält nun diese Variable $_REQUEST['avar']
| (bzw. vor PHP 4.1.0 als $HTTP_GET_VARS['avar']) als Array und kann
| die Werte dieses Arrays aufzählen.
Zum Wohle des Archivs:
Am Thu, 24 Jun 2004 16:05:02 +0200 schrieb Frag'Em:
Jetzt fehlt mir aber immer noch die Auflösung des Arrays.
Wie krieg ich da die Werte da wieder raus? Ich muß die einzelnen Werte
ja irgendwie in die DB-Felder kriegen! Kannst Du mir einen Tip geben?
Ich hab nur aus der verlinkten FAQ zitiert. In $_REQUEST['avar'] findest du dann halt ein handelsübliches Array (siehe PHP-Doku), über das du zum Beispiel mit foreach() iterieren kannst. Oder du kannst das ganze Array mit print_r() ausgeben.
Hi,
also mach aus dem select-feld ein Array:
<select multiple name="sel[1][]">
Warum ein zweidimensionales Array?
cu,
Andreas
Hello,
also mach aus dem select-feld ein Array:
<select multiple name="sel[1][]">
Warum ein zweidimensionales Array?
Nur so als Anregung...
Man kann seine Requestdaten nämlich auf diese Weise wunderbar strukturieren. Die Daten die müssen, die die können (variante records oder durch JS dynamisch hinzugefügte inputs..., Commands (submit) und controls (Select, Radio, Scheckbox) die keine direkte Bindung an die Datenbank auf dem Server haben...
Liebe Grüße aus http://www.braunschweig.de
Tom
Hi MudGuard,
Warum ein zweidimensionales Array?
Um andere Selects noch direct mit rein zu packen:
<select multiple name="sel[1][]">
<select multiple name="sel[2][]">
...
MfG, Dennis.
Hi,
Um andere Selects noch direct mit rein zu packen:
<select multiple name="sel[1][]">
<select multiple name="sel[2][]">
Halte ich nicht für sehr übersichtlich...
cu,
Andreas
Hello,
Um andere Selects noch direct mit rein zu packen:
<select multiple name="sel[1][]">
<select multiple name="sel[2][]">Halte ich nicht für sehr übersichtlich...
Das muss jeder selber entscheiden.
Bei meinen Scripten für automatisch generierte Umfragen ist das aber immer noch die beste Methode. Man muss ja auch die forward/backward safeties immer noch realisieren können...
Liebe Grüße aus http://www.braunschweig.de
Tom
Hi MudGuard,
Um andere Selects noch direct mit rein zu packen
Halte ich nicht für sehr übersichtlich...
Geschmackssache. Ich finde es gar nicht so unpraktisch, wenn man beim Übermitteln
in einem Array alle Select hat, in einem alle Checkboxen usw.
Kommt aber letztlich immer auf das Formular drauf an. Wenn natürlich absolut kein
Zusammenhang zwischen den Selects existiert, mag das hier selbstverständlich
umständlich sein.
MfG, Dennis.