2012-05-03 4 views
1

기본적으로 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

관련 문제