2016-06-11 2 views
0

나는이 코드를 연구하여 ajax로 유효성을 검사합니다.Codeigniter ajax 폼 유효성 검사 오류

public function create(){ 


    $data = array('success' => false, 'messages' => array()); 

    $this->form_validation->set_rules('PROVINCE','Province Name','trim|required|max_length[30]|callback_if_exist'); 
    $this->form_validation->set_error_delimiters('<p class="text-danger"','</p>'); 

    if($this->form_validation->run($this)){ 

     $data['success'] = true; 
    }else{ 
     foreach ($_POST as $key => $value) { 
      # code... 
      $data['messages']['key'] = form_error($key); 
     } 
    } 

    echo json_encode($data); 
} 

그리고 내 자바 스크립트는 다음과 같습니다 :

내 컨트롤러는 처음에는

<script> 
    $('#form-user').submit(function(e){ 
     e.preventDefault(); 

     var me = $(this); 

     // perform ajax 
     $.ajax({ 
      url: me.attr('action'), 
      type: 'post', 
      data: me.serialize(), 
      dataType: 'json', 
      success: function(response){ 
       if (response.success == true){ 
        alert('success'); 
       }else{ 
        $.each(response.messages, function(key, value) { 
         var element = $('#' + key); 

         element.closest('div.form-group') 
         .removeClass('has-error') 
         .addClass(value.length > 0 ? 'has-error' : 'has-success') 
         .find('.text-danger') 
         .remove(); 

         element.after(value) 

        }); 
       } 
      } 

     }); 


    }); 


</script> 

내 다른 문이 있다면 :

  if (response.success == true){ 
       alert('success'); 
      }else{ 
       alert('failed'); 

       }); 

하지만 난이 코드를 넣을 때

$.each(response.messages, function(key, value) { 
         var element = $('#' + key); 

        element.closest('div.form-group') 
        .removeClass('has-error') 
        .addClass(value.length > 0 ? 'has-error' : 'has-success') 
        .find('.text-danger') 
        .remove(); 

        element.after(value) 

유효성 검사에 실패하면 버튼이 더 이상 작동하지 않습니다.

+0

* "버튼이 작동하지 않는에게"원하는 PHP는 루프에서 문자열 'key' 코딩 어렵다 * 적절한 기술적 문제 설명이 아닙니다. 서버에서 실제 응답 – charlietfl

답변

1

당신은 당신이 실제로 변수 $key

변경

$data['messages']['key'] 

으로

$data['messages'][$key] 
+0

예를 들어 검사하십시오. 그게 다야! 감사! –

관련 문제