2012-04-08 9 views
4

私は郵便番号の値のリストから郵便番号を選択する必要があるPHPフォームを作成しました。3件の提出書類があります。最終提出のためにデータを保持する方法

ユーザープレスは2回を提出: - 一度値 と選択し、ドロップダウンを表示する選択メニューに対処するために行くために - 第二は、アドレスが彼の郵便番号値に対応する選択し、「OK」ボタンを押す

フォームが送信されたときに、選択した郵便番号の値を保持する必要があります。セッションで選択した郵便番号のドロップダウン値を設定しようとしましたが、ユーザーがフォームの送信を押したときにたくさんの情報が得られます。

ユーザーがいずれかの送信を押したときにページを更新した後でもすべてのフォーム値を保持するにはどうすればよいですか?

+2

'$ _SESSION'値にアクセス/作成しようとする前に必ず** session_start()を使って**セッションを開始してください。 –

答えて

2

「ユーザーがいずれかの送信を押したときにページを更新した後でも、フォームの値をすべて保持するにはどうすればよいですか?

質問を読む私はそれぞれのフォーム提出が実際にサーバーに送信されるかどうか分かりませんでしたが、私はそのように仮定します。また、これを達成するためにPHPセッションを使用しようとしていると仮定しています。ユーザーがフォームを送信すると

//Start the session 
session_start(); 
//Save the values 
$_SESSION["foo"] = $_POST["bar"]; 
... 

がいる場合は、アドレスを選択した後、ユーザーが初期フォームにリダイレクトされますPHPのセッションに値をサーバー側に保存して、あなたはそれを移入します:あなたは$_SESSION ARRAに保存されているすべての送信された値を持つ必要があります提出する最終後

<!-- Populate HTML form based on previously submitted values --> 
<input type="text" name="foo" value="<?php echo $_SESSION["foo"] ?>" /> 
... 

//Start the session 
<?php 
    session_start(); 
?> 
y。セッションに関係するものを処理しようとする前に、常に session_start()を忘れないでください。

+0

私は、フォームファイルに含まれているheader.phpファイルの最初の行でsession_startを呼び出します。私はどのように私はsession_start ..を使用する必要があるかわかりません..どのようなヘッダーが送信される前に常に宣言する必要がありますが、私はheader.phpに含まれている場合、常に(理論上)ページの更新で呼び出される?私はあなたの提案を明日お試しいただきます、ありがとうございます。 – iulia

+0

'$ _SESSION'配列からデータを取得または設定する前に' session_start() '**を呼び出す限り、あなたはうまくいくはずです。 '$ _SESSION'データを取得/設定したいすべてのページにヘッダーファイルが含まれている場合、それはうまくいくはずです。 –

+0

解決済みですが、問題は私がsession_start()を正しく設定する以外はすべて正しいことをしていることでした。このフォームはWordpressテンプレートの一部であるため、セッションの開始を次のように正しく呼び出しています:// wordpressのセッションを有効にします。 } } add_action( 'init'、 'cp_admin_init'); functions.phpファイルで正しく動作するようになりました。ありがとう:) – iulia

0

私はあなたが複数のフォーム間でフォームデータを追跡できるとは限りません。

私はあなたのプロジェクトを見ていないので、要件を十分に理解できていないかもしれませんが、AJAXの使用を検討することをお勧めします。 jQuery post() manualをチェックしてください。実際は簡単です。これには、最初のフォームが完了した後にページを更新できるという利点があります。

EDIT:申し訳ありませんが、私はあなたが単一の$ _POSTで複数のフォームデータにアクセスできないことを意味しました。もちろん$ _SESSIONに格納することもできます(セッションを正しく開始することを忘れないでください)。

+0

残念ながら、私はすべてのフォーム検証エラーを取得するためにWebサービスを使用しているので、このアプローチを使用することはできません。 – iulia

関連する問題