Avatar billede beef12 Nybegynder
11. august 2005 - 12:38 Der er 33 kommentarer og
1 løsning

En form - 2 submit knapper

Hello,
Jeg vil gerne vide om det er muligt at oprette en form der indeholder to submit-knapper og som har hver sin action.

f.eks.
<form method="post" action1="her.php" action2="der.php">
<input type="text" name="test">
<input type="submit" name="submit1" value="gå der">
<input type="submit" name="submit2" value="gå her">
</form>

Er der noget i HTML standarden som understøtter dette, eller kan man få denne funktionalitet til at virke ved hjælp af Javascripts eller lignede?
Avatar billede apo Praktikant
11. august 2005 - 12:42 #1
Jeg mener at du kan bruge 'onclick':

<input type="submit" name="submit1" value="gå der" onclick="java script:submit.form.name()">

<input type="submit" name="submit1" value="gå her" onclick="java script:submit.form.name()">

Apo
Avatar billede apo Praktikant
11. august 2005 - 12:43 #2
Hov...

<input type="submit" name="submit1" value="gå der" onclick="java script:submit.form.name()">

<input type="submit" name="submit2" value="gå her" onclick="java script:submit.form.name()">
Avatar billede busschou Praktikant
11. august 2005 - 12:45 #3
du skal rette action
<input type="submit" name="submit1" value="gå der" onclick="this.form.action = 'der'">
<input type="submit" name="submit2" value="gå her" onclick="this.form.action = 'der'">
Avatar billede busschou Praktikant
11. august 2005 - 12:45 #4
hov her og der
---
<form action="">
<input type="submit" name="submit1" value="gå der" onclick="this.form.action = 'der'">
<input type="submit" name="submit2" value="gå her" onclick="this.form.action = 'her'">
</form>
Avatar billede roenving Novice
11. august 2005 - 12:46 #5
>>apo

-- og java script: pseudo-protokollen er ret meget malplaceret i en script-event, da det selvfølgelig ikke er nødvendigt at fortælle javascript-fortolkeren, at den skal fortolke script i en script-event som script !-)
Avatar billede busschou Praktikant
11. august 2005 - 12:47 #6
lidt søgning giver at olebole forleden svarede på det samme, samt med en god forklaring på hvorfor man bør benytte onclick frem for fx onmousedown
http://www.eksperten.dk/spm/638793
Avatar billede apo Praktikant
11. august 2005 - 12:53 #7
roenving > Jeps, det lyder logisk nok :-)

Jeg har aldrig selv brugt to inputs i en form, så jeg var ikke helt sikker på den præcise metode...
Avatar billede busschou Praktikant
11. august 2005 - 12:57 #8
citat
  Jeg har aldrig selv brugt to inputs i en form, så jeg var ikke helt sikker på den præcise metode...
----
mener forhåbentlig ikke inputs med submits, for ellers er det da meget små forme du arbejder med ;o)
Avatar billede apo Praktikant
11. august 2005 - 13:03 #9
*LOL*

Jeg mener naturligvis at: "Jeg har aldrig selv brugt to _submits_ i en form..." ;-)
Avatar billede beef12 Nybegynder
11. august 2005 - 17:56 #10
Jeg prøvede det her:

<input type="submit" value="  Preview  " onClick="this.form.action = window.open('preview.php','MyWindow','toolbar=no,location=no,directories=no,status=no,menubar=no, scrollbars=yes'); return false;">


Den åbner fint nok op - men den får ikke sine posts med...
Avatar billede roenving Novice
11. august 2005 - 18:02 #11
Nej selvfølgelig ikke, for du submitter jo slet ikke data ...

-- hvordan ser den anden action ud, er det en almindelig afsendelse af data ?-)
Avatar billede beef12 Nybegynder
11. august 2005 - 18:07 #12
Således ser den ud...

<form method="post" action="" name="pubform">
<textarea name="cmsform" style="width:100%; height:300px"></textarea>
<input type="submit" value="  Save  " action="save.php">
<input type="button" value="  Preview  " onClick="window.open('preview.php','MyWindow','toolbar=no,location=no,directories=no,status=no,menubar=no, scrollbars=yes'); return false;">
</form>

Den ene knap gemmer data i textarea, den anden previewer det i en pop-up...
Avatar billede roenving Novice
11. august 2005 - 18:20 #13
Det ser da ikke lige ud til at du har nærlæst de andre indlæg i denne tråd, men en måde at gøre det på, kan være:

<form method="post" action="" name="pubform" target="" onsubmit="if(this.target==''){return true;} else {window.open('', 'MyWindow', 'width=400,height=300,scrollbars=yes'); return true;}">
<textarea name="cmsform" style="width:100%; height:300px"></textarea>
<input type="submit" value="  Save  " onclick="this.form.target='';this.form.action='save.php';">
<input type="submit" value="  Preview  " onlick="this.form.target="MyWindow';this.form.action='preview.php';">
</form>
Avatar billede roenving Novice
11. august 2005 - 18:29 #14
-- og det skal da tilføjes, at browseren en sjælden gang ikke vil nå at initialisere popup-vinduet, før formens afsendelse resulterer i, at browseren skal have fat i det, men den vil normal ikke give problemer ...

-- en anden måde er simpelthen at bruge target="_blank" i stedet for selv at åbne en popup !-)
Avatar billede roenving Novice
11. august 2005 - 18:30 #15
Hov, en tavetosse:

<input type="submit" value="  Preview  " onlick="this.form.target='MyWindow';this.form.action='preview.php';">
Avatar billede beef12 Nybegynder
11. august 2005 - 19:30 #16
Nu linker de begge til den samme side, navnligt save.php
Avatar billede roenving Novice
11. august 2005 - 19:36 #17
Det kan ikke lade sig gøre, hvis du har taget den kode, jeg skrev @18:20:14 med rettelsen @18:30:38 ...

-- for hvis du ikke har trykket på save-knappen vil formen referere til sig selv (men det er måske den, som hedder save.php ?-)
Avatar billede beef12 Nybegynder
11. august 2005 - 20:16 #18
Har du selv prøvet den...

Lille rettelse omkring fejlen - den linker ikke til den første knap som jeg sagde, den gør blot ingenting...

Jeg har lavet en helt ny fil og skrevet følgende:
<form method="post" action="" name="pubform" target="" onsubmit="if(this.target==''){return true;} else {window.open('', 'MyWindow', 'width=400,height=300,scrollbars=yes'); return true;}">
<textarea name="cmsform" style="width:100%; height:300px"></textarea>
<input type="submit" value="  Save  " onclick="this.form.target='';this.form.action='save.php';">
<input type="submit" value="  Preview  " onlick="this.form.target='MyWindow';this.form.action='preview.php';">
</form>
Avatar billede roenving Novice
11. august 2005 - 22:18 #19
Da jeg ikke har noget serverside kørende er jeg lidt handicappet omkring at prøve den type ting for alvor, men jeg gav den samme type kode til en anden i sidste uge, og der kørte den upåklageligt, dog uden komplikationen med forskellige actions og targets, men der kan jeg ikke lige se, at der skulle kunne være en forskel !-)
Avatar billede beef12 Nybegynder
12. august 2005 - 08:32 #20
Nå ok :-)
Jeg prøver at google videre - jeg kan umligt være den eneste der har brug for denne funktionalitet.
Avatar billede busschou Praktikant
12. august 2005 - 08:44 #21
Er der nogen speciel grund til at du ønsker et specielt vindue i speciel størrelse osv?
For ellers kan du vel bare sætte den ene til at sætte target="_Blank"
--
<form action="" target="">
<input type="submit" name="submit1" value="gå der" onclick="this.form.action = 'der'; target=''">
<input type="submit" name="submit2" value="gå her" onclick="this.form.action = 'her'; target='_Blank'">
</form>
Avatar billede roenving Novice
12. august 2005 - 12:51 #22
Egentlig er der jo heller grund til så megen fiflen omkring, for vi kan jo gå direkte til:

<form method="post" action="" name="pubform" target="" onsubmit="if(this.target=='MyWindow')window.open('', 'MyWindow', 'width=400,height=300,scrollbars=yes'); return true;">
Avatar billede beef12 Nybegynder
12. august 2005 - 17:06 #23
Busscou: Jeps, det er nødvendigt i dette tilfælde, desværre
Roenvig: Jeg tester lige dit forslag
Avatar billede roenving Novice
12. august 2005 - 17:21 #24
-- hvis du ikke får det til at virke, skal vi nok over i, at det nye vindue udløser submitten ved load, men så skal der en del mere script til !-)
Avatar billede beef12 Nybegynder
13. august 2005 - 16:10 #25
Tak for jeres hjælp. Jeg må lade mig nøjes med target _blank metoden. Derfor får du points busschou.
Avatar billede busschou Praktikant
13. august 2005 - 16:11 #26
jamen så takker jeg og håber du overlever med at måtte "nøjes" ;o)
Avatar billede beef12 Nybegynder
13. august 2005 - 16:13 #27
hehe - det er en svær pille at sluge :-)
Det er mig der takker.
Avatar billede olebole Juniormester
13. august 2005 - 16:25 #28
<ole>

- hvis pillen ikke er helt nede, kan du godt spytte den ud igen  :)

<form method="post" action="" name="pubform" target="" onsubmit="if(this.target==''){return true;} else {window.open('', 'MyWindow', 'width=400,height=300,scrollbars=yes'); return true;}">
<textarea name="cmsform" style="width:100%; height:300px"></textarea>
<input type="submit" value="  Save  " onmousedown="this.form.target='';this.form.action='save.php';">
<input type="submit" value="  Preview  " onmousedown="this.form.target='MyWindow';this.form.action='preview.php';">
</form>

- 'onmousedown' er din ven  ;o)

/mvh
</bole>
Avatar billede beef12 Nybegynder
13. august 2005 - 16:29 #29
super olebole - tak for det.
Skal jeg oprette et nyt spm så du får points - eller er du ligeglad?
Avatar billede olebole Juniormester
13. august 2005 - 16:30 #30
onclick-event'en bliver ganske rigtigt fyret af, lige før knappens default-handling (f.eks: submit).
På samme måde fyres formens onsubmit-event af, lige før denne submittes.

Skal de to events begge fyres af, inden formen reelt submittes - og i en bestemt rækkefølge - går der dog åbenbart ged i, hvad der affyres, hvornår.

Derfor hjælper det at flytte knappens ekstra-handling lidt frem i kronologien (til onmousedown i stedet for onclick), så den fyres af lidt tidligere  ;o)
Avatar billede olebole Juniormester
13. august 2005 - 16:31 #31
- ellers tak ... jeg har rigeligt og det vigtige var, du ikke skulle 'nøjes' ....... eller spise piller af dårligt stof  ;D
Avatar billede olebole Juniormester
13. august 2005 - 16:32 #32
- og så var forklaringen lidt vigtig ... så man forstår, hvorfor fejlen opstod  :)
Avatar billede beef12 Nybegynder
13. august 2005 - 16:33 #33
LOL - super. Jeg havde undervurderet onMouseDowns kræfter :-)
Avatar billede olebole Juniormester
13. august 2005 - 16:34 #34
*LooL* pas på med det - og pøj-pøj med det videre arbejde  ;o)
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