Avatar billede krummel Juniormester
27. juli 2006 - 20:12 Der er 14 kommentarer og
1 løsning

forms og php

Hvad er der galt her. Når vælger 10 og så klikker submit kommer der test.php?p= og ikke test.php?p=2

<form method="POST" action="test.php?p=<? echo $Pk; ?>">

<select MULTIPLE SIZE="4" NAME="Pk">
<OPTION value="0">Alle</OPTION>
<OPTION value="1">5</OPTION>
<OPTION value="2">10</OPTION>
<OPTION value="3">20</OPTION>
</select>   

<input type='submit' border='0' value='Stem' name='B1'>
</form>
Avatar billede iss Novice
27. juli 2006 - 20:15 #1
Fordi PHP er serverside, ændre din method til GET og fjern ?p=
Avatar billede pidgeot Nybegynder
27. juli 2006 - 20:17 #2
...og da det er en multiple select, skal du bruge det som et array for at det giver mening - hvilket vil sige at select'ens name skal slutte på [].
Avatar billede jakobdo Ekspert
27. juli 2006 - 20:19 #3
Og du har name=pk, så det vil også blive: test.php?pk=2
Hvis du altså retter method til GET
Avatar billede krummel Juniormester
27. juli 2006 - 20:43 #4
Sikke som I kan supplere hinanden :)
Hvorfor kommer der %5B%5D med i adresselinien anden gang jeg klikke på submit? Første gang går det fint

1. gang: test.php?Pk=1&Pk=2
2. gang: test.php?Pk=1%5B%5D&Pk=2%5B%5D


Rettet til:
<form method="GET" action="test.php">

<select MULTIPLE SIZE="4" NAME="Pk">
<OPTION value="0[]">Alle</OPTION>
<OPTION value="1[]">5</OPTION>
<OPTION value="2[]">10</OPTION>
<OPTION value="3[]">20</OPTION>
</select>   

<input type='submit' border='0' value='Stem'>
</form>
Avatar billede jakobdo Ekspert
27. juli 2006 - 20:48 #5
Jeg tror faktisk %5B%5D = []
Avatar billede krummel Juniormester
27. juli 2006 - 21:11 #6
Kan man undgå det på nogen måde?
Avatar billede jakobdo Ekspert
27. juli 2006 - 21:20 #7
<form method="GET" action="test.php">

<select MULTIPLE SIZE="4" NAME="Pk[]">
<OPTION value="0">Alle</OPTION>
<OPTION value="1">5</OPTION>
<OPTION value="2">10</OPTION>
<OPTION value="3">20</OPTION>
</select> 

<input type='submit' border='0' value='Stem'>
</form>
Avatar billede krummel Juniormester
27. juli 2006 - 21:37 #8
Det har jeg faktisk forsøgt, men det ændrer desværre ikke så meget. Nu siger den:
test.php?Pk%5B%5D=1&Pk%5B%5D=2

Men nu har jeg prøvet uden helt [] og det ser faktisk ud til at virke fint. Jeg kan godt fælge flere. Er der så nogen grund til at benytte []? eller er der noget helt galt
Avatar billede pidgeot Nybegynder
27. juli 2006 - 21:40 #9
Du kan ikke tilgå mere end den ene af de værdier, derfor er det nødvendigt med [] så PHP selv smider det ind som et array.

Alternativet er at du tager en af de ting i $_SERVER-arrayet (såsom $_SERVER['REQUEST_URI']) og selv parser den - men er det virkelig det værd? :)
Avatar billede krummel Juniormester
27. juli 2006 - 21:47 #10
Jeg bruger selecten til at sortere noget data med fra en db, og man har ofte brug for at sortere flere gange. Så det er vigtigt at kunne submitte flere gange efter hinanden.

Kan man evt "tømme" arrayet hver gang jeg har brugt den - det kan være det hjælper? evt. hvordan?
Avatar billede pidgeot Nybegynder
27. juli 2006 - 21:51 #11
...den må du lige forklare nærmere. Eftersom det foregår med GET, skal det jo være i URL'en hver gang (eller gemmes med en session, el. lign.), så hvis du ikke vil have det med, er det jo bare at undlade at tage det med i din URL.
Avatar billede krummel Juniormester
27. juli 2006 - 22:45 #12
Jeg tror bare jeg vrøvler. Jeg arbejder lige lidt med det og opretter sikkert et nyt spørgsmål :)

giv et svar, hvis i vil have point
Avatar billede jakobdo Ekspert
27. juli 2006 - 22:52 #13
Brug evt post og gem info i session.
Avatar billede pidgeot Nybegynder
27. juli 2006 - 22:53 #14
Jeg springer over. :)
Avatar billede krummel Juniormester
19. august 2006 - 10:30 #15
.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester