2017-02-13 310 views
1

控制器代碼如下所示無法登錄。 沒有任何錯誤得到什麼問題,我可以不知道如何通過Ajax用戶名和密碼通過ajax登錄..無法登錄

 public function loginn() 
      { 
       $email=$this->input->post('email'); 
       $password=$this->input->post('password'); 

       //$this->load->library('form_validation'); 

       $this->form_validation->set_rules('email', 'Email or number', 'required|min_length[10]|max_length[30]'); 
       $this->form_validation->set_rules('password', 'password', 'trim|required|min_length[4]|max_length[40]'); 

       if ($this->form_validation->run() && $this->Login_model->login($email, $password)) { 
        $this->welcome(); 
       } 
       else { 
        $this->form_validation->set_message('check_database', 'Invalid username or password'); 

        $this->index(); 

         } 
      } 

下面的代碼中調用如圖瀏覽頁面通過ajax.script作爲below.how帖子發送值傳遞後值控制器使用ajax。

<script type="text/javascript"> 
$(document).ready(function(){ 
    $("#fpassf").click(function(){ 
     //e.preventDefault(); 
     var email = $("#email").val(); 
     var password= $("#password").val(); 


     $.ajax({ 
      type: "POST", 
      url: "<?php echo base_url() ?>"+"Index.php/Login_cntrl/loginn", 
      data: {email:email,password:password}, 
      success:function(data) 
      { 
       alert('Successfully login'); 
      }, 
      error:function() 
      { 
       alert('fail'); 
      } 
     }); 
    }); 
}); 


在圖像上點擊登入畫面下方 enter image description here

顯示在圖所示 enter image description here

+0

把你的jQuery代碼 – Shayan

+0

問題是什麼?錯誤?問題是什麼?預期與實際行爲?由於缺乏細節而投票結束。 –

+0

如果您有任何問題,請檢查您的AJAX響應和PHP錯誤。也許這會幫助你找出問題所在。 – mi6crazyheart

回答

0

看來你正在使用笨框架。因此,我對您的Ajax URL路徑有疑問。

你給

url: "<?php echo base_url() ?>"+"Index.php/Login_cntrl/loginn", 

但笨應該像

url: "<?php echo base_url() ?>"+"/Login_cntrl/loginn", 

OR

url: "<?php echo base_url('Login_cntrl/loginn') ?>", 

它也可能是你調用從腳本文件這阿賈克斯。這不是一個PHP文件。所以base_url()函數在那裏不起作用。在這種情況下,您必須將base_url以隱藏格式保存到輸入變量中。然後應該在你的ajax代碼中獲取。

<input type="hidden" name="myurl" value="<?php echo base_url();"> 

,然後阿賈克斯一個

var myurl = $("#myurl").val(); 
+0

對不起,先生你的代碼無法正常工作 –

0

你必須分開你的基本的登錄操作和Ajax登陸行動,因爲同時發送不同的響應。

PHP控制器:

public function ajax_login() 
{ 
    $email = $this->input->post('email'); 
    $password = $this->input->post('password'); 

    $this->form_validation->set_rules('email', 'Email or number', 'required|min_length[10]|max_length[30]'); 
    $this->form_validation->set_rules('password', 'password', 'trim|required|min_length[4]|max_length[40]'); 

    if ($this->form_validation->run() && $this->Login_model->login($email, $password)) { 
     return $this 
      ->output 
      ->set_status_header(200) 
      // here you tell to the ajax that the login is successful 
      ->set_output(json_decode(array('status' => 'success', 'message' => 'PUT_YOUR_SUCCESS_MESSAGE_HERE'))) 
     ; 
    } else { 
     return $this 
      ->output 
      ->set_status_header(200) 
      // here you tell to the ajax that the login is failed 
      ->set_output(json_decode(array('status' => 'error', 'message' => 'PUT_YOUR_ERROR_MESSAGE_HERE'))) 
     ; 
    } 
} 

的Javascript:

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $("#fpassf").click(function(){ 
      var email = $("#email").val(); 
      var password = $("#password").val(); 

     $.ajax({ 
      type: "POST", 
      url: "<?php echo base_url('Login_cntrl/ajax_login') ?>", 
      data: {email:email, password:password}, 
      success: function(data) { 
       data = JSON.parse(data); 

       // success in ajax does not mean successfully login, so check again 
       if (data.status == 'success') { 
        alert(data.message]); // login success message defined in action 
       } else { 
        alert(data.message); // login failed message defined in action 
       } 
      }, 
      error: function() { 
        // error in ajax means HTTP error, not login error 
        alert('Request failed!'); 
       } 
      }); 
     }); 
    }); 
</script>