2017-09-13 292 views
-1

我想檢查用戶電子郵件是否已存在於數據庫中。爲此我構建了以下代碼。內部服務器錯誤500(codeigniter,ajax)

AJAX代碼:

function emailCheck(){ 
    console.log("hello"); 
    var email = $("#email").val();; 
    jQuery.ajax({ 
     type: 'POST', 
     url: '<?php echo base_url(); ?>myCon/customerCheck', 
     data: {email:email}, 
     success:function(response){ 
      $('#test').html(response); 
     } 
    }); 
} 

myCon控制器的功能:

 public function customerCheck(){ 
      $this->load->model('CustomerModel'); 
      $res = $this->customerModel->customerMailCheck(); 
      echo json_encode($res); 
     } 

customerModel模型的功能:

 function customerMailCheck(){ 
      $mail = $this->input->post('email'); 
      $result = $this->db->get_where('privilege_customer', array('email' => $mail); 
      return $result->result(); 
     } 

現在,每當我調用該函數我得到錯誤,指出內部服務器錯誤500.

有沒有更好的方法來做到這一點?

+1

檢查錯誤日誌。 – Script47

+0

您對返回數據進行編碼,但是您不會在JavaScript中解碼? – Script47

+0

500內部錯誤意味着你的'controller'文件有'system'錯誤或者其他一些'error'' –

回答

0

你可以試試這個解決方案爲您問題。

請添加下面的代碼在你的頭

<script type="text/javascript"> 
    base_url = '<?=base_url()?>'; 
</script> 

改變你的控制器功能。

public function customerCheck(){ 
    if ($this->input->is_ajax_request()) { 
     $this->load->model('CustomerModel'); 
     $mail = $this->input->post('email'); 
     $res = $this->customerModel->customerMailCheck($mail); 
     if(!empty($res)) { 
      $data['status'] = 'success'; 
      $data['message'] = 'Email Adress is found'; 
     } else { 
      $data['status'] = 'error'; 
      $data['message'] = 'Data not found'; 

     } 
     echo json_encode($data); 
     exit; 
    } else{ 
     redirect('login/logout'); 
    } 
} 

更改Ajax代碼

function emailCheck(){ 
    var email = $("#email").val();; 
    jQuery.ajax({ 
     type: 'POST', 
     url : base_url +'myCon/customerCheck', 
     data: {email:email}, 
     success:function(response){ 
      if(response.status=="success"){ 
       $('#test').html(response.message); 
      } else { 
       console.log(response.message) 
      } 
     } 
    }); 
} 

CustomerModel模型的功能:

function customerMailCheck($mail){ 
    $result = $this->db->get_where('privilege_customer', array('email' => $mail)); 
    return $result->result(); 
} 

我希望該W生病幫助你。

+0

感謝您的修改,但我仍然收到「POST http://[:: 1]/myCon/myCon/customerCheck 500(內部服務器錯誤)「。 –

+0

請立即檢查。 –

+0

沒有變化仍然在控制檯中出現錯誤。 –

0

一個支架缺失模型中的功能:

試試這個:

function customerMailCheck(){ 
      $mail = $this->input->post('email'); 
      $result = $this->db->get_where('privilege_customer', array('email' => $mail)); 
      return $result->result(); 
} 
0

您必須在控制器接收ajax請求,並把它傳遞給

myCon控制器

模型
public function customerCheck(){ 
     $this->load->model('CustomerModel');  
-----> $mail = $this->input->post('email');  ------v 
     $res = $this->customerModel->customerMailCheck($mail); 
      echo json_encode($res); 
     } 

型號:

function customerMailCheck($mail){ 

      $result = $this->db->get_where('privilege_customer', array('email' => $mail); 
      return $result->result(); 
     } 
0

嘗試這個

腳本:在這裏,你錯過了布布爾河Qutes

function emailCheck(){ 
    console.log("hello"); 
    var email = $("#email").val();; 
    jQuery.ajax({ 
     type: 'POST', 
     url: '<?=site_url()?>myCon/customerCheck', 
     data: {"email":email}, 
     success:function(response){ 
      $('#test').html(response); 
     } 
    }); 
} 

型號:在這裏,你在$result=線錯過)

function customerMailCheck() { 
    $mail = $this->input->post('email'); 
    $result = $this->db->get_where('privilege_customer', array('email' => $mail)); 
    return $result->result(); 
    } 
+0

@akhilregonda在配置中更改$ config ['base_url'] =' ';'to'$ config ['base_url'] ='http://'.$_SERVER [「SERVER_NAME」]。'/ project_name /';' –