Zurück Taste bei einem Formular mit Speicherung der bisherigen angaben

itseit

Erfahrenes Mitglied
Hallo,

Ich habe ein Formular. Das beim klicken auf den Button die Felder welche ausgefüllt werden müssen überprüft. Falls ein Feld nicht ausgefüllt ist, soll der User die möglichkeit haben mit einer Taste zurück zum Formular zu kommen ohne das alle bisherigen eingaben gelöscht werden.

Tobi
 
Original geschrieben von tobi-city
Hallo,

Ich habe ein Formular. Das beim klicken auf den Button die Felder welche ausgefüllt werden müssen überprüft. Falls ein Feld nicht ausgefüllt ist, soll der User die möglichkeit haben mit einer Taste zurück zum Formular zu kommen ohne das alle bisherigen eingaben gelöscht werden.

Tobi

Da biste im JavaScript Forum besser aufgehoben ;).
PHP ist dafür nur bedingt geeignet ;).
 
Ich handhabe es meistens so, dass ich die Formulardaten an das Script weiterleite, das auch das Formular darstellt. Vor der Darstellung prüfe ich, ob jespeichert werden soll und wenn ja wird das auch versucht. Tritt dabei ein Fehler auf, gebe ich diesen mit samt dem Formular wieder aus. Der Vorteil dabei ist, dass ich wieder zugriff auf die gesendeten Formulardaten erhalte, weil sie ja an das selbe Script übergeben wurden. Und diese zeige ich an.

Wurde erfolgreich gespeichert, kannst Du die nächste Seite anzeigen oder zu dieser via header-Funktion weiterleiten.

@Muffinmampfer: Für mich hat es mehr mit PHP zu tun, als mit JavaScript, da die Formulardaten immer auch serverseitig geprüft werden sollten.

snuu
 
Re: Re: Zurück Taste bei einem Formular mit Speicherung der bisherigen angaben

Original geschrieben von Muffinmampfer
Da biste im JavaScript Forum besser aufgehoben ;).
PHP ist dafür nur bedingt geeignet ;).

Dieses Formular ist für eine Firmenseite und nicht jeder User hat JavaScript ode es aktiviert. Es gibt auch viele die garnicht wissen wie man es aktiviert. Daher finde ich PHP dafür geeingeneter - aber jedem das seine
 
Original geschrieben von snuu

@Muffinmampfer: Für mich hat es mehr mit PHP zu tun, als mit JavaScript, da die Formulardaten immer auch serverseitig geprüft werden sollten.

snuu

richtig, sie sollten immer noch nacher vom Server nachgeprüft werden, aber ich dachte er will nur nen kurzen Check machen ;).
 
Snuu bezüglich des Zurück Buttons ist es bei mir, das wenn ein Feld falsch ist eine fehler melung kommt und man auf zurück klicken muss. Dadurch wird aber de komplette Formular inhalt gelöscht. Wie kann ich zurück ohne den inhalt des Formulars zu löschen. Möchtest du den Quelltext sehen?
 
Wenn Du das Formular abschickst, werden die Daten ja an das Prüf-Script übergeben. In diesem Prüfscript müsstest Du die Daten wieder in ein Formular mit versteckten INPUT-Feldern vom Typ "hidden" stecken. Wird wieder zurück gedrückt, werden die Daten wieder an das erste Script übertragen, wo Du die Daten des Prüfscriptes wieder einfügen musst..

Um herauszufinden auf welche elegante Art die Daten dabei übertragen werden können, müsste ich mal Dein Formular sehen.

snuu
 
hier das Formular

<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
<title>xxx bedankt sich das sie das E-Mail Formular benutzt haben</title>
</head>
<body>
<?php
if ($_POST['name'] == "") {
die("Das Feld Name wurde nicht ausgefüllt<br><a href=Kontaktformular.html>Zurück</a>");
}
else
{
if ($_POST['vorname'] == "") {
die("Das Feld Vorname wurde nicht ausgefüllt<br><a href=Kontaktformular.html>Zurück</a>");
}
else
{
if ($_POST['strasse'] == "") {
die("Das Feld Strasse wurde nicht ausgefüllt<br><a href=Kontaktformular.html>Zurück</a>");
}
else
{
if ($_POST['plz'] == "") {
die("Das Feld PLZ wurde nicht ausgefüllt<br><a href=Kontaktformular.html>Zurück</a>");
}
else
{
if ($_POST['ort'] == "") {
die("Das Feld Ort wurde nicht ausgefüllt<br><a href=Kontaktformular.html>Zurück</a>");
}
else
{
if ($_POST['telefon'] == "") {
die("Das Feld Telefon wurde nicht ausgefüllt<br><a href=Kontaktformular.html>Zurück</a>");
}
else
{
if ($_POST['kommentar'] == "") {
die("Das Feld Kommentar wurde nicht ausgefüllt<br><a href=Kontaktformular.html>Zurück</a>");
}
else
{
foreach ($anrede as $zusatz) {
$to = "info@xxx.de";
$subject = "Kontaktformular von der Homepage";
$message = "$zusatz $vorname $name aus $strasse in $plz $ort mit der Telefon Nummer $telefon hat die Frage/ das Kommentar $kommentar (Sonstiges: E-Mail: $email,Fax: $fax)" ;
mail( $to, $subject, $message)
or die("Leider konnte das E-Mail Formular aus technischen Gründen nicht fortgeschickt werden. Darum bitten wir sie uns per <a href=mailto:info@xxx.de> E-Mail an info@xxx.de zu benachrichtigen</a>");
}
}
}
}
}
}
}
}
if ($_POST['email'] == "") {
foreach ($anrede as $zusatz) {
$email_to = "$email";
$email_from_mail = "xxx@xxx.de";
$email_from_name = "Firm xxx";
$email_betreff = "E-Mail Formular von dem Besuch der Website";
$header="From:$email_from_name<$email_from_mail>\n";
$header .= "Reply-To: $email_from_mail\n";
$header .= "X-Mailer: PHP/" . phpversion(). "\n";
$header .= "X-Sender-IP: $REMOTE_ADDR\n";
$header .= "Content-Type: text/html";
$emailbody =" $zusatz $vorname $name aus $strasse in $plz $ort mit der Telefon Nummer $telefon hat die Frage/ das Kommentar $kommentar gestellt";
mail($email_to,$email_betreff,$emailbody,$header);
echo ("Liebe(r) $vorname $name <br>Vielen Dank für die Benutzung des Formulars<br><br>Mit freundlichen Grüßen<p>xxxx xxx</p><br>Sie können das Fenster jetzt schliessen $zusatz $name.");
}
}
else
{
foreach ($anrede as $zusatz) {
echo ("Liebe(r) $vorname $name <br>Vielen Dank das sie das Formular benutzt haben<br><br>Mit freundlichen Grüßen<p>xxx xxx</p><br>Sie können das Fenster jetzt schliessen $zusatz $name.");
}
}
?>
</body>
</html>
 
Entschuldige die späte Antwort.
Du kannst die übergebenen POST-Daten wiefolgt in ein HIDDEN-Field schreiben, um dieses im Fehlerfall wieder zurück an das Formular-Script übergeben zu können:
PHP:
 echo '<input type="hidden" name="uebergebene_daten" value="'.base64_encode(serialize($_POST)).'">';

Wird dieses Feld nun an das Formular-Script zurückgegeben, dann kannst Du es wiefolgt wieder in ein Array umwandeln:
PHP:
 $arDaten = unserialize(base64_decode($_REQUEST['uebergebene_daten']));

Nun kannst Du wieder über $arDaten['Vorname'] auf die einzelnen Daten zugreifen und diese im Value-Parameter des Input-Tags voreinstellen.

snuu
 
Zurück