[Javascript, PHP] Form submit voert geen actie uit

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dames en heren,

Even snel bezig met een formuliertje, alles werkt prima. Op 1 ding na:
Het verzenden van het formulier pas ná het accepteren van de algemene voowaarden. De algemene voorwaarden staat al gedisplayed, de gebruiker drukt op de knop 'Registreren" en krijgt een confirm boxje te zien: "Door op OK te klikken geeft u aan akkoord te gaan met de Algemene Voorwaarden".

De gebruiker kan dus annuleren of accepteren. Annuleren spreekt voor zich, en accepteren (op ok rammen) ook. Wanneer de gebruiker echter op Ok ramt dan lijkt er niks te gebeuren. Ik weet zeker dat het formulier verzonden wordt want het scherm refreshed, maar er wordt geen actie uitgevoerd door mijn PHP script.




JavaScript:
1
2
3
4
5
6
function submitform($vraag){
    var del = confirm($vraag);
    if (del == true){
        document.getElementById('formulier').submit();
    }
}


HTML:
1
<form action="<?PHP print($_SERVER['REQUEST_URI']);?>" id="formulier" method="post"><input type="button" onclick="submitform('Wanneer u op OK drukt geeft u aan akkoord te gaan met de algemene voorwaarden.\n\nIndien u hiermee niet akkoord gaat kunt u nu op kruisje of annuleren drukken.');" name="registreren" value="Registreren" /></form>





Mijn vraag:
-Wat doe ik hier fout of zie ik over het hoofd?

Acties:
  • 0 Henk 'm!

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Doe eens ipv submitform('text') dit:

onclick="return confirm('text')"

Dat zal beter werken :)

Kijk ook eens naar Firebug voor Firefox.

Going for adventure, lots of sun and a convertible! | GMT-8


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Snake schreef op maandag 22 februari 2010 @ 15:23:
Doe eens ipv submitform('text') dit:

onclick="return confirm('text')"

Dat zal beter werken :)

Kijk ook eens naar Firebug voor Firefox.
Dit heb ik aangepast, evenals dat ik het type van de knop heb omgezet naar submit. Ik dacht dat je voor zulke acties dus eigenlijk via een button moest werken in combinatie met een javascript function. Kennelijk dus verkeerd gedacht.

Super voor je hulp! Bedankt!

Edit: Om toch te bevestigen, hij werkt geweldig. thanks

[ Voor 5% gewijzigd door Verwijderd op 22-02-2010 15:32 ]


Acties:
  • 0 Henk 'm!

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

Zo gaat het posten van de informatie in je form geheid door, ook als mensen het NIET willen.

Hang daarom een onsubmit, met vervolgens de return confirm:
HTML:
1
<form onsubmit="bevestiging()">

JavaScript:
1
2
3
4
function bevestiging()
{
     return confirm('post de informatie');
}
Overigens vind ik een dubbele bevestiging voordat je iets verzend nogal ehh... Dubbel... :+
Zet gewoon een tekstje onder de verzendknop, dat door middels daar op te klikken akkoord word gegaan met algemene voorwaarden. Werkt veel beter, ook voor mensen die JS uit hebben staan en voor mensen met een oude browser. :)

[ Voor 59% gewijzigd door CH4OS op 22-02-2010 15:42 ]


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 20:56

Creepy

Tactical Espionage Splatterer

Even een tikje door naar Webdesign, Markup & Clientside Scripting aangezien het een pure clientside aangelegenheid betreft.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • Saven
  • Registratie: December 2006
  • Laatst online: 20-09 15:58

Saven

Administrator

Even een tip:
PHP:
1
"<?PHP print($_SERVER['REQUEST_URI']);?>"


Is natuurlijk niet erg handig om dat zo daar neer te plempen. Zo is html injection mogelijk :P

Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 22:52

MueR

Admin Tweakers Discord

is niet lief

Met Saven. Als je naar de huidige pagina wil posten, laat het action attribute dan leeg.

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Creepy schreef op maandag 22 februari 2010 @ 15:41:
Even een tikje door naar Webdesign, Markup & Clientside Scripting aangezien het een pure clientside aangelegenheid betreft.
Sorry mijn fout, ik was in de waan daar ook te zijn. Niet goed opgelet :P
GJtje schreef op maandag 22 februari 2010 @ 15:39:
Zo gaat het posten van de informatie in je form geheid door, ook als mensen het NIET willen.

Hang daarom een onsubmit, met vervolgens de return confirm:
HTML:
1
<form onsubmit="bevestiging()">

JavaScript:
1
2
3
4
function bevestiging()
{
     return confirm('post de informatie');
}
Overigens vind ik een dubbele bevestiging voordat je iets verzend nogal ehh... Dubbel... :+
Zet gewoon een tekstje onder de verzendknop, dat door middels daar op te klikken akkoord word gegaan met algemene voorwaarden. Werkt veel beter, ook voor mensen die JS uit hebben staan en voor mensen met een oude browser. :)
Wanneer ik nu op annuleren druk gaat het posten niet door....

En ja ik weet dat het dubbelop is, dat een stukje tekst indd makkelijker is, maar mijn klant wil het zo. Dus krijgt hij het zo, ondanks mijn eigen advies. (wat luidde dit anders aan te pakken doormiddel van een stukje tekst of nog een 2de pagina met een overzicht van je ingevulde gegevens én daar dan een grote mooie knop met 'Ik accepteer de algemene voorwaarden en wil mij hierbij registreren met de bovenstaande gegevens'...).

Verder valt je overige opmerking dan weg aangezien mijn klant het op deze manier wil, dus via javascript.
Saven schreef op maandag 22 februari 2010 @ 15:45:
Even een tip:
PHP:
1
"<?PHP print($_SERVER['REQUEST_URI']);?>"


Is natuurlijk niet erg handig om dat zo daar neer te plempen. Zo is html injection mogelijk :P
MueR schreef op maandag 22 februari 2010 @ 16:51:
Met Saven. Als je naar de huidige pagina wil posten, laat het action attribute dan leeg.
Jullie hebben gelijk, dit komt omdat ik het heb overgenomen van hetzelfde formulier wat intern geplaatst is. Hier moet ik indd óf niks óf gewoon de link er hard in plaatsen. Bedankt voor deze catch ;)

Allemaal bedankt voor jullie input!
Pagina: 1