0

フォームの一部が 1 ページに存在する codeigniter MVC セットアップがあります。

ユーザーが送信ボタンをクリックするたびに、同じコントローラーがフォームの次の部分を同じ URL の下にロードhttp://domain.com/formし、同じビューを使用しますが、データは異なります (この場合のデータはフォーム要素です)。

目的:

1) ロードされる次のピースが正しい進行中のピースであることを確認します。私は同じ URL で同じコントローラーを使用しており、同じビューを使用していますが、新しいデータを入力する必要があるたびに異なる初期化データを使用していることを思い出してください。

2) ユーザーが現在のフォームピースに直接進まないフォームピースにジャンプすることを制限する

これを達成するための最良の方法は何ですか?セッションを使用したいのですが、非表示の入力要素は使用したくありません。

4

1 に答える 1

0

たぶん次のようなもの:

// load first form data here, then: 
$data = '...';

// this is intentionally above the first form
if ($this->session->userdata('step_1') == 'done' AND is post action) {
   if(the second form is validated, then) {
       // unset the session here
       $this->session->unset_userdata('step_1');
   }
}

if ($this->session->userdata('step_1')!=='done' AND is post action ) {
    if(the first form validates here, then) {
       $this->session->set_userdata('step_1', 'done');
       // prepare the second form data here, that will override the one above:
       $data = '...';
    }
}

私はしばらくCIを使用していないので、そこにあるすべてのオブジェクト名を本当に覚えているわけではありませんが、要点を理解する必要があります。

于 2013-05-08T23:13:27.700 に答える