Avatar billede jespersahner Nybegynder
12. maj 2003 - 13:08 Der er 12 kommentarer og
2 løsninger

Anvendelse af ACTION= i forb. med <FORM...>

Jeg ønsker at lave en FORM, hvor min ACTION-parameter er resultatet af en SELECT, f.eks.
<FORM>
...
<SELECT NAME="ACTION">
<OPTION VALUE="http://www.a1.com">A1</OPTION>
<OPTION VALUE="http://www.a2.com">A2</OPTION>
</SELECT>
...
</FORM>

Jeg får imidlertid ikke inkluderet denne ACTION i min form, mens det går fint med de øvrige parametre, som min FORM indeholder.

Hvordan kan dette være?
Avatar billede fri-hash Nybegynder
12. maj 2003 - 13:20 #1
måske

<FORM name="formnavn">
...
<SELECT NAME="ACTION_valg" onchange="document.formnavn.action=this.value">
<OPTION VALUE="http://www.a1.com">A1</OPTION>
<OPTION VALUE="http://www.a2.com">A2</OPTION>
</SELECT>
...
</FORM>

kan gøre det .... det er dog ikke testet
Avatar billede roenving Novice
12. maj 2003 - 13:26 #2
fri-hash har helt ret ...
Avatar billede jespersahner Nybegynder
12. maj 2003 - 13:28 #3
Det har jeg faktisk også haft med tidligere, og det virker ganske rigtigt - men kun når der ændres "effektivt" i SELECT-valget (når man f.eks. vælger den anden betingelse og derefter den første igen). Skal man måske anvende en anden funktion end 'onchange'?
Avatar billede fri-hash Nybegynder
12. maj 2003 - 13:30 #4
eller sæt din action til default at være den første option-værdi
Avatar billede fri-hash Nybegynder
12. maj 2003 - 13:33 #5
eller hvis det er dynamisk styret hvilken option der er valgt ved indlæsning af siden vil dette i slutningen af dokumentet kunne gøre det

<script>
  document.formnavn.action=document.formnavn.ACTION_valg.value;
</script>
Avatar billede jespersahner Nybegynder
12. maj 2003 - 13:43 #6
Det hjælper ikke at sætte min ACTION til default at være den første værdi. Dette udløser ikke en 'onchange' så at sige.

Og det er ikke dynamisk styret, hvis jeg forstår dig ret. Jeg bruger min FORM til at sende et CGI-request af sted med parametre valgt af brugeren. I den forbindelse vil jeg gerne kunne vælge mellem flere forskellige servere til at udføre CGI-request'et, hvorfor jeg har behov for at kunne ændre min ACTION som beskrevet.
Avatar billede christian Nybegynder
12. maj 2003 - 13:48 #7
Du kan gøre det sådan her
<FORM name="F" onsubmit="this.action = document.F.ACTION.options[document.F.ACTION.selectedIndex].value;">
<SELECT NAME="ACTION">
<OPTION VALUE="http://www.google.com">A1</OPTION>
<OPTION VALUE="http://www.yahoo.com">A2</OPTION>
</SELECT>
<input type="submit">
</FORM>
Avatar billede fri-hash Nybegynder
12. maj 2003 - 13:48 #8
sådan som jeg forstod din kommentar af 12/05-2003 13:28:48, så bliver din action ikke sat hvis folk ikke aktivt vælger noget i action_valg ... men hvis action i forvejen er den default option i action_valg, så er den jo sat hvis folk ikke aktivt vælger noget andet, og hvis de aktivt vælger noget andet siger du den er god nok??

ergo burde dette virke:
<FORM name="formnavn" action="http://www.a1.com">
...
<SELECT NAME="ACTION_valg" onchange="document.formnavn.action=this.value">
<OPTION VALUE="http://www.a1.com">A1</OPTION>
<OPTION VALUE="http://www.a2.com">A2</OPTION>
<OPTION VALUE="http://www.a3.com">A3</OPTION>
</SELECT>
...
</FORM>
Avatar billede christian Nybegynder
12. maj 2003 - 13:53 #9
Jeg vil give fri-hash ret, det kan kun virke...
Avatar billede jespersahner Nybegynder
12. maj 2003 - 13:57 #10
Sorry, jeg misforstod..det virker ganske rigtigt, som fri-hash skriver.
Men kan I fortælle mig, hvorfor ACTION-parameteren åbenabart kræver særlig pleje?
Avatar billede fri-hash Nybegynder
12. maj 2003 - 14:07 #11
tror ikke helt jeg ved hvad du mener med "særlig pleje"

hvis du mener hvorfor dit oprindelige forslag med at navngive et element i formen med name="action", ikke virker som du ønsker, så er det fordi at det laver en variabel af navnet "action" som får tildelt en værdi afhængigt af elementets type (her en select) og denne variabel sendes sammen med formens øvrige elementer til den URL der er angivet i formtaggets action="".

ligesom når du laver et <input type="text" name="name">, så får du i det modtagende dokument en variabel der hedder name, du omdøber ikke selve formen
Avatar billede roenving Novice
12. maj 2003 - 14:34 #12
Vi har snakket om onchange på select'en -- den aktion kræver, som du skriver:
'når der ændres "effektivt" i SELECT-valge' ...
Avatar billede fri-hash Nybegynder
13. maj 2003 - 08:54 #13
lægger lige et svar, hvis det viser sig at du kunne bruge mine forslag
Avatar billede jespersahner Nybegynder
14. maj 2003 - 18:49 #14
I skal have point for anstrengelserne, takker for indsatsen!
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