Form reset werkt niet altijd

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Guido  -

Guido -

24/01/2026 18:41:07
Quote Anchor link
Hoi,

Ik heb een formulier en na succesvol versturen gebruik ik een JS redirect naar de bedankpagina.
Als ik dan op de terug knop in mijn browser druk zorg ik ervoor dat de formulier input (BF cache) gereset wordt, middels een pageshow EventListener (dank Ron Kr.)

In mijn vorige topic hebben we het hier al over gehad, maar omdat ik een vervolgvraag heb, en dat topic daar niet over gaat, heb ik hierbij een nieuw topic gemaakt.

In 1 situatie reset formulier niet (volledig):
1) Ik vul formulier verkeerd in
2) Druk op versturen en krijg foutmelding
3) Ik vul formulier correct in
4) Druk op versturen en krijg bedankt pagina
5) Ik druk op terug knop in mijn browser
Formulier niet (volledig) leeg.

Ik heb tijdelijk een voorbeeld online gezet, zie deze link.

Wat is hier aan de hand en hoe kan ik dit fixen?
Gewijzigd op 24/01/2026 18:43:05 door Guido -
 
PHP hulp

PHP hulp

27/05/2026 04:55:14
 
- Ariën  -
Beheerder

- Ariën -

24/01/2026 22:02:33
Quote Anchor link
Heb je er ook PHP-code achter zitten? Of is het enkel HTML/JS?
 
Guido  -

Guido -

24/01/2026 22:29:28
Quote Anchor link
Alleen beetje PHP voor validatie vd invoer.
Alles zit in 2 php bestanden: /index.php en /dank.php.
 
- Ariën  -
Beheerder

- Ariën -

24/01/2026 22:35:32
Quote Anchor link
Ik denk dat je eens naar het POST/Redirect/GET pattern moet kijken:
https://en.wikipedia.org/wiki/Post/Redirect/Get
 
Guido  -

Guido -

24/01/2026 23:04:18
Quote Anchor link
Dat doe ik toch al door de redirect naar de bedank pagina te gebruiken.
 
- Ariën  -
Beheerder

- Ariën -

24/01/2026 23:46:21
Quote Anchor link
Doe je dan in PHP ook een échte redirect via header()?
 
Guido  -

Guido -

25/01/2026 00:25:35
Quote Anchor link
Redirect met JS window.location.
Heb een voorbeeld online gezet, dus broncode van beide bestanden kun je bekijken.
Gewijzigd op 25/01/2026 00:27:00 door Guido -
 
- Ariën  -
Beheerder

- Ariën -

25/01/2026 00:48:44
Quote Anchor link
Er kunnen altijd redenen zijn dat het met JS niet werkt, dus gebruik bij voorkeur PHP.
 
Guido  -

Guido -

25/01/2026 10:29:19
Quote Anchor link
Dit lijkt mij te maken te hebben met de back/forward cache en/of de POST global die de invoer heeft onthouden.
Maar zoals uitgelegd, ook in mijn andere topic, wordt de back/forward cache geleegd. Maar blijkbaar dus niet altijd.
 
- Ariën  -
Beheerder

- Ariën -

25/01/2026 12:27:51
Quote Anchor link
Daarom raad ik ook PHP aan....
 
Guido  -

Guido -

26/01/2026 08:15:52
Quote Anchor link
Hoe wil je dit oplossen met PHP dan?
Met een PHP redirect, die je eerder noemde, riskeer je de "headers already sent" fout. Heb je niet met window.location.
Gewijzigd op 26/01/2026 08:19:15 door Guido -
 
- Ariën  -
Beheerder

- Ariën -

26/01/2026 09:12:57
Quote Anchor link
Als jij er zorgen maakt om 'headers already sent', dan weet je dat je iets behoorlijk fout doet.
Je moet gewoon geen output voor de header zetten! En ja, daar zijn altijd oplossingen voor.

En mocht je er tegenaan lopen, dan ben je al op PHPhulp.

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

    // Hier zou je bv. iets opslaan in de database
    // $mysqli->query("INSERT INTO ...");

    // Redirect naar GET

    header('Location: form.php?success=1');
    exit;
}

?>

Werkt perfect!
Je moet NOOIT maar dan ook NOOIT enkel op JavaScript vertrouwen. Controles en validatie moet je ook altijd serverside uitvoeren.
Gewijzigd op 26/01/2026 10:31:40 door - Ariën -
 
- Ariën  -
Beheerder

- Ariën -

02/02/2026 11:33:32
Quote Anchor link
En? Is het nog gelukt?
 
Guido  -

Guido -

02/02/2026 13:12:29
Quote Anchor link
Sorry, ik heb je vorige reactie gemist.
Nog niet uitgetest, maar ik had nog niet gezegd dat ik het gebruik in een WordPress plugin, en dan heb je niet de absolute zekerheid dat het op tijd is.
Ter info, ik gebruik de JS alleen voor de redirect, uiteraard niet voor input validatie.
 



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.