Toon posts:

[js] Confirmvenster voor submitten

Pagina: 1
Acties:

Verwijderd

Topicstarter
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<script language="JavaScript">
<!--
function confirm_entry(){
input_box=confirm("Weet je zeker dat je wilt verzenden?");
if (input_box==true)
{ 
// Output when OK is clicked
alert ("De mailinglist wordt nu verzonden.");
document.mailform.submit();
}
else
{
// Output when Cancel is clicked
alert ("De verzending is geannuleerd.");
}
}
-->
</script>

- knip -

<?
echo "<FORM METHOD=\"post\" ACTION=\"$PHP_SELF\" name=\"mailform\">\n"; 
echo "<TABLE BORDER=\"0\" CELLPADDING=\"5\" CELLSPACING=\"0\" WIDTH=\"450\">\n"; 
echo "<TR>\n"; 
echo "<TD>Onderwerp:</TD>\n"; 
echo "<TD><INPUT TYPE=\"text\" NAME=\"onderwerp\" SIZE=\"20\" 
CLASS=\"form\"></TD>\n"; 
echo "</TR>\n"; 
echo "<TR>\n"; 
echo "<TD VALIGN=\"top\">Bericht:</TD>\n"; 
echo "<TD>";
?>
<textarea name="bericht" style="width:650; height:300">
</textarea><br>
<?
echo"</TD>\n"; 
echo "</TR>\n"; 
echo "<TR>\n"; 
echo "<TD COLSPAN=\"2\"><INPUT TYPE=\"button\" onClick=\"confirm_entry()\" 
NAME=\"submit\" VALUE=\"Verzend!\" CLASS=\"button\"></TD>\n"; 
echo "</TR>\n"; 
echo "</TABLE>\n"; 
echo "</FORM>\n"; 
?>


De bedoeling is dus dat als er op 'verzend' geklikt, dat er dan eerst op OK geklikt moet worden voor het versturen. Maar als je nu dus op OK klikt, krijg je eerst wel de alert dat de mailinglist wordt verzonden maar daarna gebeurt er niets. Het confirm venster werkt goed, dus ik heb het idee dat de fout ligt in deze regel:

De bedoeling is dus dat deze regel ervoor zorgt dat het form submit en de php code (die hier niet staat) gaat werken omdat er gesubmit is.

code:
1
document.mailform.submit();


Ik heb de code even kaalgestript voor het overzicht, dus zoals 'ie er nu staat zal het zeker niet werken. Ik neem aan dat die ene regel gewoon helemaal fout is, en dat jullie mij kunnen helpen :)

  • André
  • Registratie: Maart 2002
  • Laatst online: 19-08 12:30

André

Analytics dude

document.forms["mailform"].submit();

En deze regel dan voor de alert zetten aangezien het script wacht totdat de alert weggeklikt is.

  • CaptBiele
  • Registratie: Juni 2002
  • Laatst online: 13-06 11:32

CaptBiele

No Worries!

onder IE zou document.mailform.submit() ook moeten werken, maar de methode van Andre is zeker correct. Het zal dan ook niet aan deze regel liggen....

probeer eens te testen of je naar je eigen pagina kan posten. Test of er uberhaupt iets gebeurt.

Verwijderd

Topicstarter
error: "Deze eigenschap of methode wordt niet ondersteund door het object."
Op lijn 10, en dat is jouw stukje code :(

Verwijderd

Topicstarter
CaptBiele schreef op 29 August 2003 @ 13:49:
probeer eens te testen of je naar je eigen pagina kan posten. Test of er uberhaupt iets gebeurt.
We weten dat de hele php code en HTML zonder confirmvenster werkt, we krijgen het confirmvenster er alleen niet ingebouwd...

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:21

crisp

Devver

Pixelated

geef je submit button NOOIT de name 'submit'; hiermee overschrijf je de javascript method submit() omdat een name ook property is van het window object!

Verder zou ik het gewoon zo doen:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function confirmentry() {

  if (confirm('Weet je zeker dat je wilt verzenden?')) {

    alert('De mailinglist wordt nu verzonden.');
    return true;

  } else {

    alert('De verzending is geannuleerd.');
    return false;

  }

}


met:
HTML:
1
<form ..... onsubmit="return confirmentry()">

en dan een gewone submitbutton (zonder name="submit" uiteraard ;) )


en haal in hemelsnaam die 'hide-script-from-older-browser'-dingetjes weg en geef je <script> tag een type declaratie.
HTML tags in uppercase zijn ook vies ;)

[ Voor 7% gewijzigd door crisp op 29-08-2003 13:59 ]

Intentionally left blank


  • André
  • Registratie: Maart 2002
  • Laatst online: 19-08 12:30

André

Analytics dude

En toch werkt dit prima bij mij:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<html>
  <head>
    <title>Test</title>
  </head>
  <body onload="confirm_entry()">
    <script language="JavaScript">
      function confirm_entry()
      {
        if (confirm("Weet je zeker dat je wilt verzenden?"))
        { 
          alert ("De mailinglist wordt nu verzonden.");
          document.forms["mailform"].submit();
        }
        else
        {
          alert ("De verzending is geannuleerd.");
        }
      }
    </script>
    <form name="mailform"></form>
  </body>
</html>
crisp schreef op 29 August 2003 @ 13:52:
geef je submit button NOOIT de name 'submit'; hiermee overschrijf je de javascript method submit() omdat een name ook property is van het window object!
Dat had ik niet gezien, maar inderdaad, dat verklaart waarom hij een foutmelding geeft op het commando submit.

[ Voor 36% gewijzigd door André op 29-08-2003 13:57 ]


Verwijderd

Topicstarter
crisp schreef op 29 August 2003 @ 13:52:
geef je submit button NOOIT de name 'submit'; hiermee overschrijf je de javascript method submit() omdat een name ook property is van het window object!
Dank u! Het werkt nu naar behoren. _/-\o_

Over de upper-case HTML tags, dat had die vent zelf gescript, het enige wat wij moeten doen was die bevestiging en nog wat kleine dingetjes.

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:21

crisp

Devver

Pixelated

André schreef op 29 August 2003 @ 13:56:
[...]
Dat had ik niet gezien, maar inderdaad, dat verklaart waarom hij een foutmelding geeft op het commando submit.
Da's een hele bekende valkuil hoor; ik snap sowieso niet waarom je je submit button een name property zou willen geven in dit geval. Dit is gewoon ranzig namelijk:

PHP:
1
2
3
4
5
if (isset($_POST['submit')) {

  // hee, we hebben een form die gesubmit is

}


je kan nl gewoon de request-method afvragen:

PHP:
1
2
3
4
5
if ($_SERVER['REQUEST_METHOD'] == 'POST') {

  // hee, we hebben een form die gesubmit is

}

Intentionally left blank


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 21-08 18:29
crisp schreef op 29 August 2003 @ 14:03:
PHP:
1
2
3
4
5
if (isset($_POST['submit')) {

  // hee, we hebben een form die gesubmit is

}
Dan werkt de return om een formulier te submitten toch ook niet meer?

[ Voor 59% gewijzigd door djluc op 29-08-2003 14:14 ]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:21

crisp

Devver

Pixelated

djluc schreef op 29 August 2003 @ 14:13:
[...]

Dan werkt de return om een formulier te submitten toch ook niet meer?
jawel, omdat ik in mijn voorbeeld geen javascript meer nodig heb om te submitten; deze PHP voorbeelden waren even om te illustreren dat je submit button een name geven in de meeste gevallen onnodig is...

Intentionally left blank

Pagina: 1