2010-02-25 3 views
2
우리는 우리는 다음) (A CodeIgniter의 컨트롤러 즉, 해당 양식을 .post하기 위해 jQuery를 사용

JQuery와 포스트 CodeIgniter의 검증

사업부로) (양식을 .load하기 위해 jQuery를 사용하는

/응용 프로그램/포스트

우리 그런 다음 Codeigniter에서 유효성 검사를 수행하지만 유효성 검사 오류를 표시하는 페이지로 돌아갈 방법을 모르겠습니까? 컨트롤러가 다시로드되면 개체가 다시 초기화되지 않고 데이터가 손실됩니다.

잘못된 방식으로 접근하고 있습니까?

답변

1

컨트롤러의 세션에 유효성 검사 메시지를 저장 한 다음 해당보기/페이지에 유효성 검사 메시지를 표시하지만 사용자가 모든 유효성 검사를 올바르게 수행하면 세션을 다시 파괴해야합니다.

6

나는 그것을 이해할 것이라고 생각하지 않기 때문에이 질문에 답하는 어떤 자유를 가질 것입니다.

먼저 $.post()에 대해 많이 알지 못합니다. 따라서 저는 여러분이 우리가 알고있는 것처럼 우리가 당신을 사용하고있는 것처럼 당신이 질문하는 것처럼 대답 할 것입니다. 왜냐하면 그것이 제가 알고있는 것과 제가 그들이 비슷하다고 확신하기 때문입니다.

우리는 다음 CodeIgniter의이 유효성 검사를 수행 할 수 있지만이 확인 유효성 검사 오류를 표시하는 페이지를 어떻게 복귀했다

?

오류를 표시하는 페이지로 돌아 오지 않으면 jQuery가 출력 (예 : CI보기 파일)을 수신 할 수 있도록 반향 출력하고 사용자가 원하는 결과를 처리 할 수 ​​있습니다. $.ajax()를 사용

가, 여기에 내가 무엇을 할 것이라고입니다 ..

CI를 컨트롤러 :

if(! $this->form_validation->run($my_form_rules)) 
{ 
    // Set the status header so $.ajax() recognizes it as an error 
    $this->output->set_status_header(400); 

    // The error string will be available to the $.ajax() error 
    // function in the javascript below as data.responseText 
    echo validation_errors(); 

    exit(); 
} 
else 
{ 
    // Do something with the post data 
    $result = $this->do_something(); 

    // Set the status header so $.ajax(0 recognizes a success 
    // and set the header to declare a json response 
    $this->output->set_status_header(200); 
    $this->output->set_header('Content-type: application/json'); 

    // Send the response data as json which will be availible as 
    // var.whatever to the $.ajax() success function 
    echo json_encode($result); 

    exit(); 
} 

아약스 :

$.ajax({ 
    data: myPostDataObj, 
    dataType: "json", 
    type: "POST", 
    success: function(data) { 
     alert(data.message); 
    }, 
    error: function(data) { 
     alert(data.responseText); 
    } 
}); 

당신은, jQuery를 here$.ajax()에 대한 자세한 내용을보실 수 있습니다 만 기본적으로, 당신은 설정 한 컨트롤러에 포스트 데이터를 보내고, 그 데이터를 가져 와서 검증 과정을 거치며 실행합니다. ss이고, 실패하면 ajax가 오류 함수에 var.responseText로 보낼 표준 텍스트를 출력합니다.

유효성 검사를 통과하면 게시물 데이터로 무언가를하고 자바 스크립트 기능에서 쉽게 사용할 수있는 json 개체로 원하는 결과를 반환합니다.

아마도 이것이 더 나은 해결책 일 것입니다. 그리고 나는 그것이 진행되는 것에 대해 약간 설명 할 수 있기를 바랍니다. 나는 희망.

+0

웁스! 나는 질문을 오해했을 수도 있습니다 .... – bschaeffer

+0

아주 멋지게 bschaeffer 다! –