2017-09-13 2 views
-1

Ich möchte überprüfen, ob die Benutzer-E-Mail bereits in der Datenbank vorhanden ist. Dafür habe ich den folgenden Code erstellt.Interner Server Fehler 500 (Codeigniter, Ajax)

AJAX-Code:

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 Controller-Funktion:

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

customerModel Modell Funktion:

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

Nun, wenn ich diese Funktion aufrufen Angabe ist immer Fehler, dass interne Serverfehler 500.

Gibt es einen besseren Weg, dies zu tun?

+1

Überprüfen Sie Ihre Fehlerprotokolle. – Script47

+0

Sie kodieren die Rückgabedaten, aber Sie dekodieren nicht in Ihrem JavaScript? – Script47

+0

500 interner Fehler bedeutet in Ihrer 'Controller' Datei haben' System' Fehler oder einen anderen 'Fehler'' –

Antwort

0

Sie können diese Lösung versuchen, für Ihre Problem.

Bitte Code unten in der Kopfzeile von

Seite hinzufügen
<script type="text/javascript"> 
    base_url = '<?=base_url()?>'; 
</script> 

ändert Ihre Controller-Funktion.

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'); 
    } 
} 

ändern Ajax-Code

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) 
      } 
     } 
    }); 
} 

Funktion des CustomerModel Modell:

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

hoffe, dass ich dieses w krank hilft dir.

+0

Danke für die Änderungen, aber immer noch die" POST http:// [:: 1]/myCon/myCon/customerCheck 500 (Interner Serverfehler) "in der Konsole. –

+0

Bitte überprüfen Sie jetzt. –

+0

Keine Änderung erhält immer noch den Fehler in der Konsole. –

0

Eine Klammer ) ist in Ihrem Modell Funktion fehlt:

Try this:

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

Sie müssen Ajax-Request in Controller empfangen und weitergeben

mycon Controller

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

Modell:

function customerMailCheck($mail){ 

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

Probieren Sie diese

Script: Hier verpasst Bouble 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); 
     } 
    }); 
} 

Modell: Hier vermisste Sie ) in $result= Linie

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

@akhilregonda Änderung in der Konfiguration '$ config ['base_url'] = ' '; 'nach' $ config [' base_url '] =' http: //'.$_SERVER ["SERVER_NAME"]. '/ project_name /'; ' –

Verwandte Themen