2009-08-06 12 views
4

これは私の最初の投稿です。 )PHPを使った複数ページフォーム検証

私はPHPで複数ページのフォームを作成したいと思います。

フォームは3ページ以上に広がり、各ページは(jqueryの検証を使用して)フォームに入力されたデータを検証する必要があります。エラーメッセージを表示する必要があるサーバーでJavaScriptが無効になっている場合関連するフォームフィールドの横に表示されます。

検証時に、データはセッション変数を使用してフォームの次のページに渡す必要があります。

私が抱えている主な問題は、ほとんどの検証スクリプトが現在アクションを "現在のページを参照している"ままにしていることです。そのようなポスト変数はフォームのチェーン内の別のページに渡すことができません。

妥当性検査を行い、送信ボタンをクリックすると新しいページに投稿する検証スクリプトが必要です。

おかげ

ピーター

答えて

6

あなたは、次のページに投稿する必要はありません。

現在のページのフォームフィールドを検証し、セッションに保存してからheader("location: nextPage.php"); exit(0);リダイレクトを使用して次のページに移動できます。

+0

+1これは正しい方法です。 –

+0

これをお寄せいただきありがとうございます、リフレクションでは、これが最善の方法です!乾杯。 – mathalete

-1

私はthis JSバリデータをお勧めします。非常に使いやすく、action=""パラメータにはまったく依存しないため、希望どおりに設定することができます。

0

一般的に、あなたは

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

ような何かを行うことができ、これは、検証フォームがfalseを返した場合にフォームを送信ではない、あなたのjavascriptの検証フォームを呼び出します。

また、サーバー側の検証を行う必要があります。前回の検証済みの結果をセッションに再格納するのではなく、保存することをお勧めします(毎回再検証する必要はありません)。

0

ポストリダイレクトパターンを使用する必要があります。検証がセッションに投稿された変数を保存した後、そのページが

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

を行い、次に渡すと、次のページ(管理ページ)に変数を投稿してください。サーバー側の検証に失敗した場合は、エラーが発生したpage1.phpへのヘッダーを作成します。この方法で戻るボタンを使用することができます。

関連する問題