2011-06-30 8 views
1

私は、ユーザがステップを進めて次のステップに進み、次のステップに進む必要があるフォームウィザードを作成しています。セッションでPHP WebAppの状態を制御する

今すぐステップが検証され、完了すると、私は$_SESSION['step']を次のステップに切り替え、次のステップがロードされるときにその変数が有効であることを確認します。ユーザーが順序外のステップにスキップしようとすると、$_SESSION['step']はステップがロードされないようにします。

これは適切なアプローチですか?また、ステップが完了すると、前のステップで入力した値を元に戻して編集することができます。私のアプローチでは、これが許可されていません。なぜなら、セッションを有効なリクエストかどうかを知ることなくセッションに変更するように設定する方法がわからないからです。

これについてのご意見は大変ありがとうございます。

答えて

2

このアプローチでは何も問題はありませんが、複数のフォームでしか動作しないという点で少し制限があります。しかし、これがほんの1つの小さなアプリであれば、心配はありません。

2番目の質問私は分かりませんが、$ _SESSIONは配列を含む任意のデータ型を受け入れることができるので、$ _SESSIONはあなたがいる場所とこれまでのフォームで何をしているのかを記入してください。

$_SESSION['my_form'] = array (
    'current_step' = 'step_2', 
    'step_1' = array (// the form elements), 
    'step_2' = array (// the form elements), 
    'step_3' = array (// the form elements), 
    'step_4' = array (// the form elements), 
) ; 

次に、通常どおり各ポイントで検証を行います。また、記入されているかどうかにかかわらず、各フォームに小さなフラグを付けることもできます。

'step_2' = array (
     'complete' = true, 
     // form elements/fields here 
    ), 

これをスライスする別の方法は、何千もの動的フォームの1つを使用することです。たとえば、JQueryを使用すると、Accordionプラグイン(JQuery UIから)を使用して、1つのHTMLページですべてをシミュレートできます。

+0

これは理にかなっており、私が思っていたラインに沿っており、より組織化されています。あなたのご意見ありがとうございます! –

関連する問題