HTML Formularinhalt nur bei erfolgr. abschicken löschen

furryhamster

Lt. Commander
Registriert
Okt. 2008
Beiträge
1.100
Hi,

habe ein Formular. Dort gibt es etwa 8 Pflichtfelder. In einer If-Bedingung(PHP) prüfe ich ob die Felder ausgefüllt wurden. Falls nicht geb ich mit echo eine Fehlermeldung aus.

Zur zeit ist es so, dass nach absenden der Formularinhalt immer gelöscht wird. Dieser soll allerdings nur gelöscht werden, wenn das formular erfolgreich abgeschickt wurde.

wie kriege ich sowas hin?

EDIT: Ich sollte dazu vlt noch erwähnen , dass wenn ich das formular aufrufe, mittels get bereits werte voreingetragen sind. wenn ich das formular wieder mit get abschicke statt wie mit post jetzt, würden die daten immerhin eingetragen bleiben, jedoch werden sie nicht bei erfolgreichem absenden gelöscht
 
Zuletzt bearbeitet:
Da du schreibst, daß du die Felder in PHP prüfst, ist das Formular zu diesem Zeitpunkt also schon abgeschickt - und wird also nicht "gelöscht", sondern die Seite wird komplett neu geladen und somit auch ein neues, leeres, Formular angezeigt.

Um das zu erreichen, was du möchtest, müßtest du also in dem Fall, daß das Formular nicht korrekt ausgefüllt wurde, das neue Formular mit dem alten Inhalt füllen, wenn du es erstellst.
 
ja das verstehe ich. problem dabei habe ich im ersten post nach reineditiert.

selbst wenn die daten jetzt per get erneut ausgelesen und eingetragen werden habe ich jedoch das problem, dass er bei erfolg das formular nicht löscht.

entweder brauch ich hierbei noch einen tipp oder einen tipp bezüglich header. leider wird mir immer mitgeteilt, dass der header bereits verschickt wurde, obwohl kein echo davor habe (nur in der ersten if bedingung, in die er in dem fall ja nicht reinspringt)
 
Du könntest ganz einfach eine Vorüberprüfung mit JavaScript machen und nur wenn diese erfolgreich ist, wird das Formular abgeschickt und die Endprüfung per PHP gemacht. Dabei hast du zwei Vorteile: Erstens ist das von dir geschilderte Problem für alle mit aktivierten JS behoben, zweitens sparst du erheblich Performance, da du viele Falschüberprüfungen direkt am Client überprüfst und nicht immer einen neuen Request schicken musst.

Du benötigst aber unbedingt beide Mechanismen, da man JS ja deaktivieren kann (und ansonsten keine Serverseitige Überprüfung mehr stattfinden würde)

Ansonsten musst du einfach alle Werte wieder in die Value Felder der Form Elemente schreiben.



so long
 
Du prüfst ja deine 8 Felder: wenn alle Felder ok sind (Variable setzen: $ok = 1;), füllst du die Felder nicht mehr aus, wenn min. eines der Felder nicht ok ist ($ok = 0), füllst du sie aus.

PHP:
echo ($ok == 1) ? '<input value="">' : '<input value="' . $_GET['feldX'] . '">';

Oder ich versteh das Problem nicht :)
 
Zuletzt bearbeitet:
Zurück
Oben