acquire
Mitglied
Hallo,
ich habe ein Formular, welches einem Nutzer eine Frage stellen lässt. Falls bei der Formularüberprüfung ein Fehler bemerkt wird, wird eine Variante des gleichen Formulars gezeigt, bei dem per POST die zuvor eingegebenen Werte eingefügt wurden. Jetzt kann der Benutzer seine Eingabe korrigieren und erneut abschicken.
Dies funktioniert bei den Input-Feldern, aber nicht bei textarea. Dort wird nichts gesendet.
Das erste Formular (funktioniert)
Wenn unter ?action=neu die Fehlerüberprüfung einen Fehler erkennt wird folgende Funktion ausgelöst:
Mein Problem ist jetzt, dass bei diesem Formular !isset( $_POST['frage']) true ist. Aber nur, wenn der Text bei der Fehlerprüfung nach absenden des ersten Formulars nicht richtig ist und verbessert werden muss!
Im Forum bin ich leider über die Suche auf keine passende Lösung gestoßen.
Ich hoffe es weiß jemand Rat oder hat einen hilfreichen Link.
Gruß, acquire
ich habe ein Formular, welches einem Nutzer eine Frage stellen lässt. Falls bei der Formularüberprüfung ein Fehler bemerkt wird, wird eine Variante des gleichen Formulars gezeigt, bei dem per POST die zuvor eingegebenen Werte eingefügt wurden. Jetzt kann der Benutzer seine Eingabe korrigieren und erneut abschicken.
Dies funktioniert bei den Input-Feldern, aber nicht bei textarea. Dort wird nichts gesendet.
Das erste Formular (funktioniert)
PHP:
<form action="index.php" method="post">
<h2>'.$txt['13'].'</h2>
<div>
<label for="name">'.$txt['08'].'</label>
<input type="text" name="name" id="name">
<label for="email">'.$txt['09'].'</label>
<input type="text" name="email" id="email">
<label for="frage">'.$txt['10'].'</label>
<textarea name="frage" rows="5" cols="50" id="frage"></textarea>
<span class="text">'.$txt['15'].'</span>
<input type="hidden" name="action" value="neu" class="n">
<input type="submit" name="submit" value="'.$txt['11'].'" class="button1">
<input type="reset" name="submit" value="'.$txt['12'].'" class="button2">
<div class="ende"></div>
</div>
</form>
Wenn unter ?action=neu die Fehlerüberprüfung einen Fehler erkennt wird folgende Funktion ausgelöst:
PHP:
function inputerror($error,$nr) { #$nr gibt an, an welcher Formularstelle ein Fehler ist, $error ist der Fehlertext
switch ($nr) {
case 1:
$css1='style="background-color: ff0; color: ff0000;"';
break;
case 2:
$css2='style="background-color: ff0; color: ff0000;';
break;
case 3:
$css3='style="background-color: ff0; color: ff0000;';
break;
}
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
</head>
<body>
<form action="index.php" method="post">
<h2 style="color: ff0000;">'.$error.'</h2>
<div>
<label for="name">'.$txt['08'].'</label>
<input '.$css1.' type="text" name="name" id="name" value="'.input($_POST['name']).'">
<label for="email">'.$txt['09'].'</label>
<input '.$css2.' type="text" name="email" id="email" value="'.input($_POST['email']).'">
<label for="frage">'.$txt['10'].'</label>
<textarea '.$css3.' name="frage" rows="5" cols="50" id="frage">'.$_POST['frage'].'</textarea>
<span class="text">'.$txt['15'].'</span>
<input type="hidden" name="action" value="neu" class="n">
<input type="submit" name="submit" value="'.$txt['11'].'" class="button1">
<input type="reset" name="submit" value="'.$txt['12'].'" class="button2">
<div class="ende"></div>
</div>
</form>
</body>
</html>';
}
Mein Problem ist jetzt, dass bei diesem Formular !isset( $_POST['frage']) true ist. Aber nur, wenn der Text bei der Fehlerprüfung nach absenden des ersten Formulars nicht richtig ist und verbessert werden muss!
Im Forum bin ich leider über die Suche auf keine passende Lösung gestoßen.
Ich hoffe es weiß jemand Rat oder hat einen hilfreichen Link.
Gruß, acquire