2012-06-17 6 views
0

저는 첫 번째 jquery 아약스 로그인을하고, jquery에서 약간의 초보자를 만들뿐입니다.코드 서명 유효성 검사 및 jquery 폼 유효성 검사

제 문제는 양식 유효성 검사 오류를 반환하는 방법을 실제로 이해할 수 없다는 것입니다.

여기 내 컨트롤러입니다.

function login() 
    { 

     $this->form_validation->set_rules('email', 'Email', 'reqired|valid_email|callback_check_name'); 
     $this->form_validation->set_rules('password', 'Passsword', 'reqired|callback_check_pass'); 

     if($this->form_validation->run() !== FALSE){ 

      $identity = $this->input->post('email'); 
      $password = $this->input->post('password'); 
      $remember = TRUE; // remember the user 
      $this->ion_auth->login($identity, $password, $remember); 
     } 

    } 

    function check_email() 
    { 
    if(!$this->ion_auth->email_check($this->input->post('email'))) 
    { 
     $this->form_validation->set_message('check_email', 'Cant find this email in database'); 
     return false; 
    } 
    } 

    function check_pass() 
    { 
    $query = $this->db->query(" SELECT password FROM mma_users WHERE password = '".sha1($this->input->post('password'))."' "); 

    if($query->num_rows() == 0) 
    { 
     $this->form_validation->set_message('check_pass', 'Incorrect password given'); 
     return false;  
    } 
    } 

login.js

$(function() { 
     $('.top-login-form').on('submit', function(e){ 
     e.preventDefault(); 
     var loginInfo = $(this).serialize(); 

     $.ajax({ 
      type: "POST", 
      url: "user/ajax/login", 
      data: loginInfo, 
      dataType: "json", 
      success: function(data){ 
       alert('all ok'); 
      }, 
      error: function(data) { 
       $('.login-info').slideDown(); 
       $('.login-info').html(data); 
      } 
     }); 

    }); 
}); 

및 HTML 아래로 슬라이드

<div class="well login-info"> 
<div class="alert alert-error"> 
    <strong>Oh snap!</strong> 
    <?php echo json_encode(validation_errors()); ?> 
    <strong>Having troubles logging in?</strong> 
     <div class="recover"> 
      <a href="#" class="btn btn-danger"><i class="icon-warning-sign icon-white"></i> Yes i think i forgot my password</a> 
      <a href="#" class="btn btn-danger"><i class="icon-envelope icon-white"></i> Yes i think i forgot my email</a> 
     </div> 
</div> 

임 다음과 같은 문제를 faceing, 매번 내가 잘못된 이메일 또는 비밀번호를 삽입하는 경우 또는 올바른 하나는 항상 성공 메시지를 받는다.

나는이 아니 큰 요청 (기본 예제는 좋은 것) 경우 단지

감사합니다 내가()가 없습니다있는 무슨 지적이 양식 저를 작성하는 사람이 돼요.

답변

2

오류 메서드는 컨트롤러에서 오류가 발생하면 호출합니다. 컨트롤러에서 오류가 발생 또는 대안 회신이

$(function() { 
    $('.top-login-form').on('submit', function(e){ 
    e.preventDefault(); 
    var loginInfo = $(this).serialize(); 

     $.ajax({ 
     type: "POST", 
     url: "user/ajax/login", 
     data: loginInfo, 
     dataType: "json", 
     success: function(data){ 
      if(data){ 
      alert('all ok'); 
      } 
      else{ 
      $('.login-info').slideDown(); 
      $('.login-info').html(data); 
      } 
     } 
     }); 

    }); 
}); 
+0

감사를 시도하지만 난 여전히 내가 컨트롤러 기능 "기능 로그인()"의 무효 방법과 같은 값을 반환하지 않는 것을 생각 같은 결과 – Side

+0

를 얻을 수 . 이 함수는 성공 또는 오류가 발생하면 값을 반환해야합니다. –