2010-07-23 4 views
4

즉, 다음과 같은 하나의 컨트롤러 방법을 사용하도록 권합니다.Codeigniter에서 게시물 데이터를 처리하는 좋은 방법은 무엇입니까?

function save() 
{ 
    if(!is_bool($this->input->post(''))) 
    { 
     $post_data = $this->input->post(''); 
     $this->mymodel->save($post_data); 
    } 
    $this->load->view('myview'); 
} 

아니면 두 가지 방법으로 작성 하시겠습니까?

function save() 
{ 
    if(!is_bool($this->input->post(''))) 
    { 
     $post_data = $this->input->post(''); 
     $this->mymodel->save($post_data); 
    } 
    redirect('controller/method2') 
} 

여기서 리디렉션이 중요한 차이점입니다. 예를 들어 재전송을 금지합니다.

당신은 그것을 어떻게해야합니까? 다른 더 좋은 방법이 있습니까?

답변

11

항상을 성공적인 양식 게시로 리디렉션해야합니다.

+0

+ 너를 위해 1000 인터넷 포인트. 누구나 한가지 간단한 규칙을 알아야 해. –

+0

Hehehe. :) – Aren

3

Aren B가 말했듯이 리디렉션은 좋은 생각이지만, 코드에서 바꿀 내용은 양식 유효성 확인 기능을 사용하여 게시물 데이터의 유효성을 검사해야한다는 것입니다. 더 재사용 할 수있을뿐만 아니라 코드가 더 짧아집니다.

AJAX 요청을 처리하려면 via 또는 리디렉션 이외의 다른 것을 반환해야합니다.

8

성공적인 양식 게시시 리디렉션해야합니다.

물론입니다.

  • 는 "중복 제출"을 피하십시오 : 궁금 누군가를 위해이 여기에 이유의 커플, 경우이다. 당신이 순진하게 새로 고침을 클릭하거나 뒤로 버튼을 클릭했을 때 , 모든 것이 다시 제출 되었습니까?
  • 에 책갈피에 액세스 할 수 있습니다. 사용자가 페이지를 북마크하면, 아마도 당신은 그들이 그것을 만든 곳들을 리디렉션 확인/방문 페이지를 북마크를 만드는 (오히려 빈 양식보다, 반환 할

추가 읽기를 :. http://en.wikipedia.org/wiki/Post/Redirect/Get

관련 문제