2009-08-06 4 views
4

Dies ist mein erster Beitrag, also sei nett;)Mehrseitige Formularvalidierung mit PHP

Ich möchte ein mehrseitiges Formular mit PHP erstellen.

Das Formular wird auf 3 Seiten verteilt, jede Seite muss die Daten validieren, die in das Formular auf dem Client eingegeben wurden (mit jquery validation) und wenn JavaScript deaktiviert ist, auf dem Server, wo Fehlermeldungen angezeigt werden müssen neben dem zugehörigen Formularfeld.

Nach der Validierung müssen die Daten an die nächste Seite im Formular übergeben werden, vorzugsweise mit Sitzungsvariablen.

Das Hauptproblem, das ich habe, ist, dass die meisten Validierungsskripte jetzt die Aktion = "" als sich selbst auf die aktuelle Seite verweisend, und als solche Beitrag Variablen nicht auf eine andere Seite in der Kette von Formularen übergeben werden können.

Ich möchte ein Validierungsskript haben, das validiert und dann auf eine neue Seite gepostet wird, wenn ich auf die Schaltfläche zum Absenden klicke.

Dank

Peter

Antwort

6

Sie müssen auf die nächste Seite nicht veröffentlichen.

Sie können die Formularfelder auf der aktuellen Seite validieren, sie in einer Sitzung speichern und dann mit einer Weiterleitung von header("location: nextPage.php"); exit(0); auf die nächste Seite wechseln.

+0

+1 Dies ist der richtige Weg. –

+0

Danke dafür, bei Nachdenken, dies ist der beste Ansatz! Prost. – mathalete

-1

Ich empfehle this JS Validator. Sehr einfach zu bedienen und hängt nicht von dem action="" Parameter ab, also können Sie es noch einstellen, was auch immer Sie wünschen.

0

im Allgemeinen, können Sie so etwas wie

<form onsubmit="return validateForm();" method="post" action="/wherever"> 

tun und dies wird Ihre Javascript-Validierung Formular aufrufen, nicht das Formular abschicken, wenn die Validierung Form false zurückgibt.

Sie müssen auch serverseitige Validierung durchführen, und ich schlage vor, dass Sie die vorherigen validierten Ergebnisse in die Sitzung speichern, anstatt sie erneut zu posten (da diese dann nicht jedes Mal erneut validiert werden müssen!)

0

Sie sollten das Post-Redirect-Muster verwenden. Stellen Sie die Variablen auf die nächste Seite (Steuerseite) Wenn Validierungen übergibt dann dieser Seite ein

header("Location: /page2.php"); 

nach den gebuchten Variablen in die Sitzung zu speichern tut. Wenn die serverseitige Überprüfung fehlschlägt, führen Sie mit dem Fehler eine Kopfzeile für die page1.php aus. Auf diese Weise können Sie Ihre Zurück-Taste verwenden.