Hallo,
Ik heb een uitgebreid formulier.
Nu als iemand vergeet een veld in te vullen gaat hij automatisch terug om als nog dat veld in te vullen.

Maar bij het terug gaan zijn alle gegevens die iemand al ingevuld heeft verloren.
Hoe kan ik zorgen dat deze blijven staan?

Het is nogal een uitgebreid script, wil em hier wel posten maar als iemand zo de oplossing weet is het makkelijker:)

Alvast bedankt
Handigste is denk ik om het form en de afhandeling daarvan binnen een script te houden, en dat het bestand de POST data naar zich zelf stuurt.

De POST variabelen sla je dan op. Als er een ontbreekt of niet goed is toen je het formulier opnieuw met de doorgekregen POST data als value's

Kan wel zijn dat je wat zaken aan je huidige code/structuur moet wijzigen.
Jaws, Als je naar jezelf post ben je nog steeds alle data kwijt
Wat ik zou doen is tijdens de verwerking van het formulier de ingevulde $_POST variabelen in een sessievariabele zetten. Als blijkt dat niet alle velden ingevuld zijn stuur je de gebruiker terug naar het formulier.

In het formulier controleer je of de sessievariabelen bestaan en zo ja, dan geef je die op als value attribuut aan het betreffende input element.

Voor een voorbeeld zou je hier eens kunnen kijken:

Uitgebreide formuliercontrole
Hallo Blanche.
Dat had ik ook al aangedacht... Weet alleen niet hoe ik het moet uitvoeren.
Hoe geef ik die sessie variabele weer terug aan een veld op het formulier?
Kan dat ook neit terug vinden in jou link...

Groetjes
Kijk even naar de plaats waar dat formulier weergegeven wordt, daar zie je van dit soort regels:

value="<?php echo isset($_SESSION['input']['gebruikersnaam']) ? $_SESSION['input']['gebruikersnaam'] : ''; ?>"

Dit is een verkort if/else statement wat eigenlijk niet meer zegt dan het volgende: als $_SESSION['input']['gebruikersnaam'] bestaat, echo die waarde dan. Zo niet, echo niks.

Als die sessievariabele dus bestaat, wordt deze geëchoed in het value attribuut van de betreffende input. Je ziet ook dat ik bij de verwerking van het formulier tijdens het uitlezen van de $_POST array, alle waarden direct in de sessievariabele $_SESSION['input'] prop. Zelfs nog voordat er enige controle uitgevoerd is:
<?php
$_SESSION['input'][$key] = $value;
?>
Jacco schreef op 18.12.2007 12:05
Jaws, Als je naar jezelf post ben je nog steeds alle data kwijt


Sinds wanneer dat dan?
Als ik doe
<?php
echo '<input type="text" value="'.$_POST['data'].'">';
?>
Dan heb ik de data toch weer?!

De oplossing van Blanche is idd ook een mogelijkheid.
Okido ik snap het geloof ik Blanche...
zal er eens mee aan de slag gaan:)

Oh Blanche... als ik dan toch met sessions aan de slag ga,
Kan ik dan het gedeelte van die hidden gevallen niet weglaten? Het zit immers in een session
Jep, je hoeft variabelen die in een sessie staan niet meer in een hidden input veld te zetten. De sessievariabele is op de volgende pagina immers ook gewoon beschikbaar...

Reageren