2012-05-03 17 views
1

私は基本的に3つのフォームを表示する小さなアプリケーションを構築しています...最初のものはオプション、2番目と3番目はありません。私は各フォームを別々のURL(コントローラ)にしたいと思います。 CodeIgniter form_validationのドキュメントを読んでいるうちに、フォームはそれを検証するための自己に送信することしかできないようです。そのような場合、フォームはこれはからの抜粋であるCodeIgniter検証ロジック

class Index extends CI_Controller { 

function __construct() 
    { 
     parent::__construct(); 
    } 

     function index() 
     { 
     //load front page that contains first form... 
       $content['title'] = 'Home'; 
       $content['view'] = 'pages/index'; 
       $this->load->view('template/default',$content); 

     } 
     function step_two() 
     { 
      //recieve information from front page. validate form. If validation is 
      //successful continue to step_two(url) if it fails redirect 
      //to front page with error... 

      $this->form_validation->set_rules('serial', 'Serial Number', 'required'); 

      if ($this->form_validation->run() == FALSE) 
      { 
      //return to front page... 
      }else{ 
      //do necessary work and load step_two view 
      } 


     } 

} 

?> 

...彼は私が持っているものは基本的だ...と私が何をしたいのですがどのようにコメントし...同じページに表示続けるだろう私の考え。しかし、私が気づいているのは、フォームが自己に提出されない限り、フォーム検証を行うことができないということです。何か案は?フォームを検証して、新しいURL /関数にリダイレクトするだけですか?

おかげでみんな...

+0

リダイレクトが成功した場合... – rlemon

答えて

5

これは、あなたがそれを行う方法

コントローラです -

public function step1() 
{ 
     if ($this->form_validation->run() == FALSE) 
     { 
      $this->load->view('myform1'); 
     } 
     else 
     { 
      //do something to post data 
      redirect('/controller/step2'); 
     } 
} 


public function step2() 
{ 
     if ($this->form_validation->run() == FALSE) 
     { 
      $this->load->view('myform2'); 
     } 
     else 
     { 
      //do something to post data 

      redirect('/controller/step3'); 
     } 
} 

はそうあなたの質問への答えはイエスである、あなたは同じ方法でこれらを維持し、上のリダイレクト検証が成功しました。

+0

そうだとしたら、正常に検証されたフォーム2をセッション変数に設定してstep3関数でチェックするだけで、ステップ3にアクセスできないようにしたい? –

+1

はい、セッション変数は悪い考えではありません。または、これらのフォームがどのように相互リンクされているかによって異なります。たとえば、step1で新しいdbレコードが作成された場合は、step2でフォームを表示する前に – TigerTiger

関連する問題