Ik heb een nieuws systeem gemaakt maar daar zit nog 1 foutje in [bij het add [dus ook edit] formulier]:
- Je vult het formulier in
- Wordt POST verzonden en gecontroleerd op lege of niet lang genoeg ingevulde velden
- Te kort geeft een javascript alert

Tot zover prima, maar dan moet je terug verwezen worden naar het formulier om de velden te veranderen. Nu doe ik dit met history.back() als javascript na de alert. Dan zijn alle velden weer leeg, en dat moet ik juist niet hebben! Helemala neit als je een bericht van 2000 karakters hebt getypt!

Hoe kan ik zorgen dat mijn gegevens in het formulier blijven staan?
het in de url megeven aleen dat is een beetje te lang voor een heele grote tekst ;)
Had ik ook al over gedacht, maar inderdaad dat doorgeven bij lange tekst is niet echt geweldig. Ik wil het bij de POST methode houden :)
Gewoon je form naar hetzelfde document linken, bovenaan de controles doen, en daaronder de form...

Bvb:
<?
if (isset($_POST['doorgaan'])) {
if (strlen($_POST['naam']) < 3)) { // 3 tekens min
$error = "Naam is te kort :)";
} else {
echo "Done. :)";
}
}

if (!isset($_POST['doorgaan']) || isset($error)) {
?>
<form action="<?= $_SERVER['PHP_SELF']; ?>" method="POST">
Naam: <input type="text" name="naam" value="<?= $_POST['naam']; ?>">
<br>
<input type="submit" name="doorgaan">
</form>
<?
}
?>

Een simpel voorbeeldje :)
zo is mooier:

<?
foreach ($_POST as $key => $value)
{
echo "<input type=\"hidden\" name=\"" . $key . "\" value=\"" . htmlentities(stripslashes($value)) . "\" />";
}
?>

:)
waarom zet je bij de submit de $_POST var niet in een session, zodat je deze wanneer je wilt kan opvragen, en je de gegevens ook niet publiceerd tijdens het bezoeken van andere pagina's ..
Dat is ook handig ja, Ik denk dat ik dat doe Peter, goede tip!

En voor Rafael: de verwerking wordt al door dezelfde pagina gedaan.
Okay het is gelukt!

Allen bedankt voor de hulp!

Reageren