2017-06-01 3 views
0

Ich möchte Daten aus der Datenbank abrufen, indem Sie Daten überprüfen. Ich sende Daten als JSON-Datei, aber es funktioniert nicht. Im Netzwerk werden keine Daten angezeigt, die reaktiviert werden können. Obwohl ich ohne Ajax Daten aus der Datenbank abrufen kann. wenn ich dataType ändere: 'json' trifft es nicht den cotroller. wenn diese Änderung zu "HTML" dann ausgelöst Alarm().Ajax kann Daten in Codezeichen nicht abrufen

This is my ajax code 
 
$(document).ready(function() { 
 
     $('#ret_pass').click(function(e) { 
 
      e.preventDefault(); 
 
      var data = { 
 
       u_mail  : $('#email').val(), 
 
       u_ques  : $("#security").val(), 
 
      }; 
 
      console.log(data); 
 
      url = $('#ret_form').attr('action'); 
 
      //console.log(url); 
 
      $.ajax({ 
 
       type:'POST', 
 
       url:url, 
 
       data: data, 
 
       dataType : 'json', 
 
       success: function(res){ 
 
         alert(res.msg);//says undefined 
 
         console.log(res.msg);  
 
       }, 
 
       error: function(res) { 
 
       alert(res.msg); 
 
       alert('error');//also says error! 
 
      }, 
 
      }); 
 

 
     }) 
 
    })
This is controller code 
 
public function ret_pass() 
 
\t { 
 
     header('Content-Type: application/json', true); 
 
     if($this->input->is_ajax_request()) { 
 
      $u_mail = $this->input->post('email'); 
 
      $u_ques = $this->input->post('security'); 
 
      $cond = array(
 
       'u_mail' => $u_mail, 
 
       'u_ques' => $u_ques 
 
      ); 
 
      $query = $this->db->where($cond)->get('tbl_user'); 
 
      $checker = $query->result_array(); 
 
      //if (count($checker) > 0) { 
 
      if (!empty($checker)) { 
 
       //var_dump($results); 
 
       //echo json_encode ($results); 
 
       die(json_encode(array('success' => true, 'msg' => $checker))); 
 
      } else { 
 
       echo "bad search"; 
 
       die(json_encode(array('success' => true, 'msg' => 'invalid search'))); 
 
      } 
 
     } 
 
    }

Antwort

0

Der Grund dafür ist, dass Sie keine Daten zurück von der Steuerung

public function ret_pass() 
{ 
    header('Content-Type: application/json', true); 
    if($this->input->is_ajax_request()) { 
     $u_mail = $this->input->post('email'); 
     $u_ques = $this->input->post('security'); 
     $cond = array(
      'u_mail' => $u_mail, 
      'u_ques' => $u_ques 
     ); 
     $query = $this->db->where($cond)->get('tbl_user'); 
     $checker = $query->result_array(); 
     //if (count($checker) > 0) { 
     if (!empty($checker)) { 
      //var_dump($results); 
      //echo json_encode ($results); 
      echo (json_encode(array('success' => true, 'msg' => $checker))); 
     } else { 
      //echo "bad search"; 
      echo (json_encode(array('success' => true, 'msg' => 'invalid search'))); 
     } 
    } 
} 

Auf diese senden, Ihre Ajax-Aufruf wird eine JSON-Antwort von dem, was Sie haben codiert und Sie können es in Ihrem Javascript Alert sehen.

+0

tun, dass nur Ajax Fehlerfunktion ausgelöst. das bedeutet, dass es keine Daten zurücksendet. Fügen Sie in der Fehlerfunktion –

+0

hinzu: {alert (res.responseText)} und sehen Sie, was der Fehler ist – crazyglasses

Verwandte Themen