[php] <select> POST probleem

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hi,ik heb het volgende html stukkie

code:
1
2
3
4
<select name="categorie_list" class="dropdown" size="10" MULTIPLE>
<option value="7">123</option>
<option value="8">321</option>
</select>


maar als ik dit POST zonder iets te selecteren krijg ik hem niet in de $_POST vars... Hoe kan ik ervoor zorgen dat alle opties gepost worden?


Alvast bedankt

Acties:
  • 0 Henk 'm!

  • Eskimootje
  • Registratie: Maart 2002
  • Laatst online: 18-09 08:29
<option value="7" selected>123</option>

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

.edit: onzin |:(

[ Voor 86% gewijzigd door .oisyn op 10-11-2003 14:12 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Eskimootje schreef op 10 november 2003 @ 14:07:
<option value="7" selected>123</option>
ja maar dan moet ik dus bij alle <option> selected invoeren?

Acties:
  • 0 Henk 'm!

  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 04-09 08:16

OkkE

CSS influencer :+

Moet de naam dan niet
code:
1
<select name="categorie_list[]" class="dropdown" size="10" MULTIPLE>
zijn..? Zodat het een Array is met alle waardes?

____ Edit ______

Je wilt altijd alle vars gepost hebben? Dan zou ik ze gewoon in een hidden-field zetten.

Of je wil alles gepost hebben, tenzij de gebruiker ze selecteerd? Dan moet idd in welke option selected staan..

[ Voor 57% gewijzigd door OkkE op 10-11-2003 14:13 ]

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
OkkE schreef op 10 november 2003 @ 14:12:
Moet de naam dan niet
code:
1
<select name="[b]categorie_list[][/b]" class="dropdown" size="10" MULTIPLE>
zijn..? Zodat het een Array is met alle waardes?

____ Edit ______

Je wilt altijd alle vars gepost hebben? Dan zou ik ze gewoon in een hidden-field zetten.

Of je wil alles gepost hebben, tenzij de gebruiker ze selecteerd? Dan moet idd in welke option selected staan..
ik wil ten alle tijden alle options gepost hebben! In hidden-field zetten? Leg eens uit...

[ Voor 8% gewijzigd door Verwijderd op 10-11-2003 14:17 ]


Acties:
  • 0 Henk 'm!

  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 04-09 08:16

OkkE

CSS influencer :+

Maar dan wil je ook kunnen zien of de gebruiker deze wel of niet geselecteerd heeft neem ik aan? Dan zou ik namelijk Checkbox'en gebruiken. Wil je alleen de waardes hebben, en maakt het niet uit wat de gebruiker er mee gedaan heeft. Zou ik het gewoon in een hidden-field zetten, gesplitst door komma/streep/slash/wat-dan-ook. :)

__ Edit ___

PHP:
1
2
3
4
5
6
7
8
// Alle waardes via een loop uit je database toevoegen
// aan de var waardes...
while ($line = mysql_fetch_array($result) {
$waardes .= $line[0] . ",";
}

// hiddenfield printen 
echo '<input type="hidden" name="al_je_waardes" value="' . $waardes . '">';


Dit leverd dan op:

code:
1
<input type="hidden" name="al_je_waardes" value="waardeA,waardeB,waardeC">

Die je dan na de POST weer met een explode in een Array kunt zetten.

___ Edit 2 ____

Owh... je wil de volgorde van de waardes aan kunnen passen... hmm.

[ Voor 57% gewijzigd door OkkE op 10-11-2003 14:24 ]

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
OkkE schreef op 10 november 2003 @ 14:18:
Maar dan wil je ook kunnen zien of de gebruiker deze wel of niet geselecteerd heeft neem ik aan? Dan zou ik namelijk Checkbox'en gebruiken. Wil je alleen de waardes hebben, en maakt het niet uit wat de gebruiker er mee gedaan heeft. Zou ik het gewoon in een hidden-field zetten, gesplitst door komma/streep/slash/wat-dan-ook. :)
Het is een <select> waarin je items, naar boven en onderen kunt verschuiven. Dus het maakt niet uit welke option op dat moment geselecteerd is, maar wat wel belangrijk is is dat ik alle items terug krijg uit de <select>

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

Je snapt het niet helemaal. Een select item zorgt ervoor dat de gebruiker wat items kan selecteren. Degene die hij geselecteerd heeft worden meegestuurd met de form. Als jij nog andere informatie hebt dat sowieso meegestuurd moet worden, ongeacht wat de gebruiker ermee doet, dan moet je geen select gebruiken, maar dat zou je bijvoorbeeld in een hidden input field kunnen stoppen


HTML:
1
<input type="hidden" name="bla" value="...">

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 09:15

Janoz

Moderator Devschuur®

!litemod

Wat je zou kunnen doen is alles selecteren voordat je submit, maar dat is meer een javascript probleem. Misschien is het handiger om het iets anders aan te pakken. Zodra het formulier wordt opgestuurt met javascript de select box uitlezen en de benodigde gegevens in een (of meerdere) hidden fields te stoppen. Op die manier hoef je de werking van een select box niet zo te verkrachten. Verder gaat het waarschijnlijk ook niet met de select werken. Ik heb het vermoeden dat het hier om de volgorde gaat, en er is natuurlijk geen enkele maneir om adhv alleen de values te achterhalen wat de uiteindelijke volgorde was.

[ Voor 24% gewijzigd door Janoz op 10-11-2003 14:25 ]

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Bubbaman
  • Registratie: Juli 2003
  • Laatst online: 20-03-2022
Verwijderd schreef op 10 november 2003 @ 14:04:
Hi,ik heb het volgende html stukkie

code:
1
2
3
4
<select name="categorie_list" class="dropdown" size="10" MULTIPLE>
<option value="7">123</option>
<option value="8">321</option>
</select>


maar als ik dit POST zonder iets te selecteren krijg ik hem niet in de $_POST vars... Hoe kan ik ervoor zorgen dat alle opties gepost worden?


Alvast bedankt
Staat-ie wel in een <form> CODE </form>????
Veel gemaakte fout...

Acties:
  • 0 Henk 'm!

  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 04-09 08:16

OkkE

CSS influencer :+

Bubbaman schreef op 10 november 2003 @ 14:24:
[...]


Staat-ie wel in een <form> CODE </form>????
Veel gemaakte fout...
Je zou ook eerst de topic kunnen lezen..... :{

Maar denk dat je dan beter via JavaScript in een apart veld de volgorde bij kan houden. Of dmv JS alvast de waardes in de juiste volgorde in een array zetten. Maar zoals hierboven door 'die rode' (;)) al gezegd is; volgens mij is de <select> niet helemaal wat je verwacht.

[ Voor 5% gewijzigd door OkkE op 10-11-2003 14:34 ]

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


Acties:
  • 0 Henk 'm!

  • Eskimootje
  • Registratie: Maart 2002
  • Laatst online: 18-09 08:29
code:
1
2
3
4
5
function selectAll() {
    for (i = 0 ; i < document.form.select.options.length ; i++ ) {
        document.form.select.options[i].selected = true;
    }
}


en dan bij form

code:
1
<form onSubmit="selectAll();">

[ Voor 26% gewijzigd door Eskimootje op 10-11-2003 14:30 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
OkkE schreef op 10 november 2003 @ 14:27:
[...]

Je zou ook eerst de topic kunnen lezen..... :{

Maar denk dat je dan beter via JavaScript in een apart veld de volgorde bij kan houden. Of dmv JS alvast de waardes in de juiste volgorde in een array zetten. Maar zoals hierboven door 'die rode' (;)) al gezegd is; volgens mij is de <select> niet helemaal wat je verwacht.
Dus dan zal ik met JS een array moeten aanmaken en deze vullen? Heb je hier misschien een voorbeeldje van?

Acties:
  • 0 Henk 'm!

Verwijderd

De naam SELECT-box zegt het al. Je moet eerst 1 of meerdere items moeten selecteren, wil je de waardes door kunnen sturen. Als er niets uit de selectbox wordt geselcteerd, zoals jij probeert te doen, dan worden er ook geen waardes doorgestuurd.

De oplossing van Eskimootje is volgens mij de enige oplossing om jouw probleem op te lossen.

Om bij ieder item SELECTED te zetten heeft ook geen zijn omdat er dan maar 1 item wordt doorgegeven (het item waar de laatste SELECTED bij staat) en niet alle.

Ik denk dat het ook een goed idee is om eerst eens HTML en Javascript een beetje te gaan leren B)

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

Verwijderd schreef op 10 november 2003 @ 15:23:
Om bij ieder item SELECTED te zetten heeft ook geen zijn omdat er dan maar 1 item wordt doorgegeven (het item waar de laatste SELECTED bij staat) en niet alle.
dit is onzin, elk item wordt doorgestuurd. Het probleem is alleen dat het allemaal onder dezelfde naam wordt gesubmit. En als jij een selectbox de naam "pietje" geeft, dan wordt $_POST["pietje"] elke keer overschreven door een nieuwe waarde. Vandaar dat je dan ook de naam "pietje[]" moet specificeren, zodat PHP er een array van maakt

Een javascript oplossing lijkt me echt nutteloos, maak dan wat hidden fields, want een select box is daar gewoon helemaal niet voor bedoeld

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

Verwijderd

.oisyn schreef op 10 november 2003 @ 15:36:
[...]


dit is onzin, elk item wordt doorgestuurd. Het probleem is alleen dat het allemaal onder dezelfde naam wordt gesubmit. En als jij een selectbox de naam "pietje" geeft, dan wordt $_POST["pietje"] elke keer overschreven door een nieuwe waarde. Vandaar dat je dan ook de naam "pietje[]" moet specificeren, zodat PHP er een array van maakt
Klopt, sorry voor mijn stomme fout. Zat met mijn gedachte bij een gewone selectbox en geen multiple |:( 8)7
Pagina: 1