Avatar billede intel4004 Novice
31. august 2002 - 20:35 Der er 12 kommentarer og
1 løsning

Sende data fra form via post

Lidt i tvivl om dette spørgsmål burde stilles under PHP da det er script-sproget jeg benytter. Jeg har en almindelig html-form hvor jeg har en onsubmit() event på. Når jeg trykker på submit knappen åbner der sig et nyt vindue - fedt nok!

Men så opdager jeg at scriptet som åbnes vha af onsubmit() ikke modtager de data der sendes til siden angivet i action. Er dette sandt? Er der en måde hvorpå man kan guide disse form-data til siden der åbner i det lille vindue...??

Intel4004
Avatar billede jakoba Nybegynder
31. august 2002 - 20:44 #1
Hvordan ser din form-tag ud?

det bør være noget i retning af:

<form action="destination.php" method='post' target='nytvindue'
      onsubmit="return ( valider(this.form) && window.open('','nytvindue') );">

mvh JakobA
Avatar billede intel4004 Novice
31. august 2002 - 20:58 #2
hele min side består af en masse php-includes, så egentlig er det ikke download.php(som er scriptet jeg arbejder) der modtager formdata men index.php hvor download.php er inluded.

Det er lidt tricky at forklare, men det går ikke at jeg loader siden i action i et nyt vindue, da denne jo skal forblive i selve siden...eller hvad. Jeg bliver helt forvirret nu.

Dette er min form-tag:

print '<form name="selectroute" action="'.$self.'&option=2&'.SID.'" method=get ';
    print 'onsubmit="popup(\''.$IndexFeed.'?option=3\',\'mitvindue\',\'300\',\'300\');">';

Intel4004
Avatar billede intel4004 Novice
31. august 2002 - 20:59 #3
hov jeg bruger normalt method=post, du fik lige en test-version :)
Avatar billede intel4004 Novice
31. august 2002 - 21:06 #4
Men jeg kunne vel lave en betinget body-tag med en onload-event i index-php som så ville åbne et nyt vindue...men ville den modtage form-data?
Avatar billede jakoba Nybegynder
31. august 2002 - 21:12 #5
du har sagt to gange at den side der loades i popopvinduet skal modtage fomens data.
Det er så noget vi VED.

Skal formen så derudover sendes til en anden side der opdaterer det vindue formularen ligger i?

mvh JakobA
Avatar billede intel4004 Novice
31. august 2002 - 21:28 #6
Jeg tror jeg fundet ud af. Jeg kan godt være tilfreds med det som scriptet nu gør. Det er svært at forklare, kig her hvis du har tid:

http://www.hardbytes.dk/nvb og klik på download. Log dig ind med tt som hhv. navn og email og vælg et element fra selectboxen.

Når du trykker download var meningen at siden du er skal ændre sig til noget tekst hvor der står at man kan downloade de specifikke filer i det lille vindue som gerne skulle være poppet op nu.

Det vindue som popper op skulle modtage form-data, men istedet modtager index.php det kun. Det kunne være rart hvis begge filer, på index.php og download.php kunne modtage formdata.

Intel4004
Avatar billede intel4004 Novice
31. august 2002 - 21:46 #7
Ok...har du givet op?

Jeg har problemer med at styre popup-vinduets størrelse med din metode. Den skal kun være 300 x 300 pixels. Jeg har angivet width og heigth i window.open men alligevel vil det nye popup vindue ikke blive mindre.

Intel4004
Avatar billede jakoba Nybegynder
31. august 2002 - 21:57 #8
nae, jeg er bare noget forvirret.

en width og height sreng i window.open vil ikke blive ablydt hvis det vindue allerede er åbent. ellers burde den virke.

hvordan ser koden ud nu?
Avatar billede intel4004 Novice
31. august 2002 - 21:58 #9
print '<form name="selectroute" action="'.$IndexFeed.'?option=2&'.SID.'" target="mitvindue" method=post ';
    print 'onsubmit="return( valider(this.form) && window.open(\'\',\'mitvindue\',\'width=300,height=300\') );">';

Intel4004
Avatar billede jakoba Nybegynder
31. august 2002 - 22:25 #10
mangler der ikke eet punktum efter SID

bagerst i din funktion valider() kan du evt tilføje et par linier:
...
    setTimeout( "secondSubmit()", 300 );
    return true;
}
// og en extra funktion:
function secondSubmit() {  // submit til denne side 300 millisecs efter.
    document.formnavn.action = "denne_sides_url.php";
    document.formnavn.target = "";
    document.formnavn.submit();
}
Avatar billede jakoba Nybegynder
31. august 2002 - 22:27 #11
det skulle vist være "index.php" istedetfor "denne_sides_url.php".
Avatar billede intel4004 Novice
01. september 2002 - 19:57 #12
Ok...det virker nu. Smider du et svar?

Intel4004
Avatar billede intel4004 Novice
04. september 2002 - 10:41 #13
...
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