Avatar billede wolstrup Nybegynder
29. november 2007 - 14:09 Der er 3 kommentarer og
1 løsning

Stadig problem med submit på parent

Hej

Har problemer med dette script. Jeg har en hovedside som jeg åbner et vindue fra. Vinduet vil jeg så gerne lukke samtidig med at jeg submitter hovedsiden. Scriptet virker nogenlunde, men når jeg submitter kommer der ikke rigtig nogle værdier med??

Hovedside:

function OnSubmitForm() {
  if(document.pressed == '1') {
  document.form1.action ="index.php";
  } else if(document.pressed == '2') {
    document.form1.action ="step2.php";
  } else if(document.pressed == 'Bestil') {
//    document.form1.action ="payment.php";
    document.form1.action ="invoice.php";
  }
  return true;
}

<form method="POST" id="paymentform" name="form1" onSubmit="return OnSubmitForm();">

<input type="button" value="Bestil" onclick="window.open('popup.php','')">

</form>

Popup:

echo "<script type='text/javascript'>
opener.document.pressed='Bestil';
opener.document.getElementById('paymentform').submit();";
echo 'window.close();</script>';

Hvis man bruger den normale submitknap virker det fint:

<input name="button" type="submit" id="button" value="Bestil" onClick="document.pressed=this.value" style="margin-left:65px;">
Avatar billede roenving Novice
29. november 2007 - 16:31 #1
Hvis du submitter programmatisk, vil en onsubmit ikke blive kørt, og så skal du selv udføre kommandoerne eller kalde funktionen !o]

-- i øvrigt kan funktionen blive en del mere overskuelig, hvis du medsender formen som parameter (og så er switch-funktionen skabt til dit scenarie !-)

function OnSubmitForm(f) {
  switch(document.pressed){
    case '1':
      f.action ="index.php";
      break;
    case '2':
      f.action ="step2.php";
      break;
    case 'Bestil':
      f.action ="invoice.php";
  }
  return true;
}

<form method="POST" id="paymentform" name="form1" onSubmit="return OnSubmitForm(this);">


-- den bliver ikke hurtigere af at bruge switch, men aqdskilligt mere overskuelig !o]

-- og så skal koden i popuppen se således ud:

echo "<script type='text/javascript'>
opener.document.pressed='Bestil';
var f = opener.document.getElementById('paymentform');
opener.OnSubmitForm(f);
f.submit();";
echo 'window.close();</script>';
Avatar billede wolstrup Nybegynder
30. november 2007 - 08:23 #2
Super! Mange tak.. Smid et svar
Avatar billede roenving Novice
30. november 2007 - 11:56 #3
-- og behold så langt de fleste point selv !-)

Velbekomme '-)
Avatar billede roenving Novice
30. november 2007 - 12:28 #4
Tak for point ;~}
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

IT-JOB