HTML Formular

alkaline

Mitglied
Mein Problem ist nicht so einfach zu erklären, deswegen auch der wenig aussagekräftige Titel dieses Themas.
Ich habe ein HTML Formular mit Radiobuttons und einem Textfeld. Das ganze wird per PHP in einer mysql Datenbank gespeichert. Es gibt beim Senden des Formulars diverse Bedingungen, wie z.B. ob ein RadioButton geklickt ist oder im Textfeld eine Bemerkung steht. Früher, bevor ich das ganze über eine session laufen ließ, kam bei Mißachtung einer dieser Regeln, wie z.B das Nichtanklicken eines Radiobuttons, eine Fehlermeldung und mit dem Browser "zurück Button" konnte man wieder zum Formular zurückkehren und dies oder jenes korrigieren. Vorhandener Text im Textfeld bzw. angeklickte Radiobuttons waren unverändert.
Seit ich das ganze über eine Session laufen lasse, ist, wenn man nach der Fehlerseite den Browser "zurück Button" benutzt, jedoch alles wieder im unausgefüllten Urzustand. Das ist bei einem sehr langen eingegebenen Text und "nur" vergessenem Radiobutton sehr nervig.
Was könnte ich da machen? Ich hoffe, ich hab mein Problem halbwegs klar geschildert...
 
PHP:
$_SESSION['text'] = $_POST['text']
PHP:
if(isset($_SESSION['text']))
{
	$text = $_SESSION['text'];
	unset($_SESSION['text']);
}
else
	$text = '';
echo '<input type="text" name="text" value="'.$text.'">'
 
Aha vielen Dank soweit. Kommt mir dennoch reichlich aufwendig vor, da ich, wie ich bisher noch nicht erwähnt habe, nicht eine Frage mit radiobuttons und Bemerkungstextfeld sondern ca 15 habe. Da wird die Semantik schon komplizierter oder?
 
Die unaufwendigere Alternative ist natürlich, dass Ein- und Ausgabescript das selbe sind. Dann kannst du bei fehlerhafter Eingabe einfach einen Fehler ausgeben, und darunter das Formular mit den schon gemachten Eingaben (falls vorhanden) ausgeben. Dann sparst du dir die Sessions.
 
Hmm, kannst du bitte ein wenig deutlicher erklären, wie genau du das meinst. Es ist mir völlig unklar, wie ich das bearbeitete Formular ausgeben soll. Dazu müsste es bzw der Status der Radiobuttons und der Textinhalt doch trotzdem igendwo gespeichert werden. Oder steh ich einfach voll auf dem Schlauch?
 
PHP:
if($submitbutton_wurde_gedrueck)
{
	//Verarbeite übergebene Daten und gib bei Fehler eine Fehlermeldung aus
}

echo '<form ... action="diese_datei.php">';
echo '<input type="text" name="text" value="'.isset($_POST['text']) ? $_POST['text'] : ''.'">';
echo '<input type="submit" name="submitbutton_wurde_gedruekt" value="Drueck mich!">';
echo '</form>';
 
Zurück