Er det muligt at lave forskellig action i en form, efter hvad der bliver v...

Tags:    html php javascript

<< < 12 > >>
Hej.

Jeg har et spørgsmål. Er det muligt at lave action, baseret på, hvad der er valgt af radio knapper?

Fold kodeboks ind/udHTML kode 


Jeg vil nemlig gerne have den til at beholde $_POST['submit'], men man skal blive sendt til en side, dedikeret til hver af de radio knapper, man har klikket på.

Tak på forhånd :).



14 svar postet i denne tråd vises herunder
4 indlæg har modtaget i alt 15 karma
Sorter efter stemmer Sorter efter dato
Din php:
Fold kodeboks ind/udPHP kode 


Din html:
Fold kodeboks ind/udHTML kode 


Noget i den stil :)



Man kan godt - ved at bruge javascript.
Denne stump er ikke testet.
Fold kodeboks ind/udKode 


Men hvorfor? Det ville være bedre at håndterer værdien på en side og så derfra sender videre til den ønskede side.



Er klar over hvad switch kan, og er også klar over at switch er pt. langsommere end if/ifelse/else statements, men det skal vi ikke komme ind på her. :)

Men set ud fra hvad koden indikerer (at være til et spil) giver det ingen mening at sætte en default. En default værdi er noget man definerer inden brugeren har mulighed for at ændre den. En default handling i en switch her ville være at udskrive en fejl fordi den fundne værdi ikke matcher en af de muligheder der tidligere er åbnet for at vælge.

Men som nævnt tidligere, vil den bedste løsning være at håndtere alle user inputs på een side, og derefter sende brugeren videre til en anden side - bl.a. for at samle al validering i samme script, for at undgå F5 dobbelt posting, undgå gentagelser og forenkle fremtidige opdateringer.



Som Michael og Daniele Rigtig nok nævner, kan du både gøre det ved brug af Javascript og PHP... Det virker dog mest logisk at du bare tjekker i din allerede eksisterende PHP fil, hvilken radio button der blev valgt, og herefter tager udgangspunkt i det, til hvad du nu ønsker der skal ske, evt. som Danieles eksempel med en switch, eller med et if statement :)



Indlæg senest redigeret d. 05.08.2011 16:04 af Bruger #4487
#Michael
Man kan også godt med php. Jeg kunne ikke helt huske hvordan, men prøvede at skrive det så godt som muligt :).



@ Daniele
Ikke uden at sende en request til serveren først.

Hvis formen skal sende et POST request til fire forskellige scripts afhængig af valget i formen, så skal du manipulere formens action attribut.

Det du tilnærmelsesvis gør er at sende scriptet til sig selv, håndtere formens valgte værdier og derefter sætte en $action værdi, som så skal udskrives i eget script. Først herefter vil formularen sende videre til det ønskede script.
Hvis jeg loader formularen uden at have foretaget et valg, hvordan bestemmer du så hvad der skal stå i $action? :)



#Michael
Du kan bare indskrive en default i switch'en, så hvis du ikke foretager dig et valg, gør den det ønskede valg. Jeg gav ham ikke et fuldt ud svar på det ønskede spørgsmål, jeg gav bare et forslag til hvordan det kunne bearbejdes :).



@Gnu: Indskydelse: Switch=>default :-)

Javascript som Gnu's eksempel, bagvedliggende sikkerhed ca. som Daniele's eksempel. Ellers kan du pile den med en enkelt løbe linie.



#Michael
Man kan jo også bare istedet for default, bruge case igen.

Fold kodeboks ind/udPHP kode 




I mener, at jeg skal sende dem til en side, som gør noget i denne stil?

Fold kodeboks ind/udPHP kode 




<< < 12 > >>
t