Het gebruik van action in form element

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Guido  -

Guido -

22/09/2017 15:59:58
Quote Anchor link
Hallo,

Ik heb onderaan mijn pagina een contactformulier staan en wil graag dat de pagina weer naar beneden scrolt nadat ik op de verzendknop gedrukt heb.

Dus ik zit er aan te denken om een action aan mijn form element toe te voegen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
action="#hook"

En aan mijn formulier een ID toe te voegen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
id="hook"


Het lijkt te werken... Mijn vraag, kan een dergelijke action onvoorspelbaar gedrag veroorzaken?

Groeten, Guido
Gewijzigd op 22/09/2017 16:03:46 door Guido -
 
PHP hulp

PHP hulp

18/12/2024 15:02:22
 
Frank Nietbelangrijk

Frank Nietbelangrijk

22/09/2017 17:30:18
Quote Anchor link
Wat je doet is prima.
 
Thomas van den Heuvel

Thomas van den Heuvel

23/09/2017 02:09:55
Quote Anchor link
Heb je iets ingebouwd tegen dubbelposts? Wat als iemand de pagina ververst nadat deze een formulier heeft gesubmit? Voor een contactformulier is dit mogelijk niet de beste oplossing. Maar meer informatie ontbreekt om hier een waardeoordeel over te vormen.
 
Guido  -

Guido -

23/09/2017 11:40:00
Quote Anchor link
Hallo Thomas,

De validatie vindt op dezelfde pagina (in hetzelfde bestand) plaats, dus in het geval van een fout of succesvol versturen zal hij gewoon op dezelfde pagina blijven.

Na drukken op submit wordt dus nu /#hook aan de pagina-URL toegevoegd, die blijft natuurlijk ongewijzigd als ik de pagina ververs.

Guido
 
Ben van Velzen

Ben van Velzen

23/09/2017 14:11:39
Quote Anchor link
De vraag is meer wat er gebeurt als validatie slaagt en de verzending dus succesvol is. Het is niet voor niets dat POST/Redirect/GET wordt aanbevolen.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

23/09/2017 14:35:29
Quote Anchor link
Wat Ben bedoelt in een voorbeeldje:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
    
    // validatie hier

    if(count($validationErrors) == 0) {
        // verwerking fomulier zoals insert query of verzenden van een email

        header('Location: bedankt.html'); // voorkom dubbele posts !!!!
        exit;
    }
}

?>
 
Guido  -

Guido -

23/09/2017 14:45:08
Quote Anchor link
Hoi,

Bedankt voor jullie reacties. Alles gebeurt op dezelfde pagina, wil geen doorverwijzing naar een bedankpagina.

Ik gebruik de method="post".

Indien verzending succesvol is:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
if ($sent == true) {
    return '<div id="hook">' // dank u bericht // '</div>';
}


Tegen dubbel posten gebruik ik captcha, lijkt me voldoende toch?

Guido
 
Frank Nietbelangrijk

Frank Nietbelangrijk

23/09/2017 14:50:10
Quote Anchor link
Nee is niet voldoende. En je kunt in plaats van naar een andere pagina ook gewoon redirecten naar dezelfde pagina. Daarbij mag je kiezen of je met of zonder #hook gebruikt in de url.
 
Guido  -

Guido -

24/09/2017 16:08:40
Quote Anchor link
Hoi Frank,

Waarom is dat niet voldoende tegen dubbel posten? De captcha laadt dan opnieuw en houdt het toch tegen?

Overigens, ik zie geen verband tussen dubbel posten en mijn vraag over form action, of zie ik iets over het hoofd?

Guido
Gewijzigd op 24/09/2017 16:09:03 door Guido -
 
Frank Nietbelangrijk

Frank Nietbelangrijk

24/09/2017 16:43:59
Quote Anchor link
Hoi Guido

Inderdaad wijken we van het topic af, hoop niet dat je dat vervelend vindt :)

Ik bedoel het meer in algemene zin dat je gewoon zou moeten directen na een succesvolle verwerking. 1 ding die je daarmee in ieder geval voorkomt is dat de gebruiker de bekende vraag krijgt of hij de gegevens nogmaals wil verzenden. Uit mijn hoofd gezegd komt er dan ook geen POST pagina in de browser geschiedenis te staan.
Gewijzigd op 24/09/2017 16:44:58 door Frank Nietbelangrijk
 
Ben van Velzen

Ben van Velzen

24/09/2017 16:52:52
Quote Anchor link
Daarnaast werkt het in principe wel met een captcha, maar ga je bij een dubbelpost een "foute captcha" zien, waardoor mensen snel gaan denken dat ze het fout hebben overgetikt en doelbewust opnieuw gaan verzenden. Uit het oogpunt van usability zou ik dan ook een formulier maken waar geen redirect in verwerkt is.
Gewijzigd op 24/09/2017 16:53:37 door Ben van Velzen
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.