CodeIgniter не получает эхо-данные от контроллера до Ajax - PullRequest
1 голос
/ 21 февраля 2020

Запрос ajax работает и получает доступ к функции успеха, проблема в том, что я пытаюсь использовать данные, предоставленные echo json_encode($data).

$data['status'] и $data['error_list']

У меня следующая ошибка: Uncaught ReferenceError: данные не определены

Не могли бы вы, ребята, сказать мне, почему это происходит?

Контроллер:

    public function get_user()
    {
        $result = false; 
        $data["error_list"] = array();
        $data["status"] = false;

        $email = $this->input->post("email");
        $password = $this->input->post("password");


        if (empty($email)) {
            $data["error_list"] = "O email deve ser preenchido";
        } else {
            $this->load->model("M_login");
            $result = $this->M_login->get_user($email);
        }


        if($result)
        {
            if(password_verify($password, $result->password)) 
            {
                $this->session->set_userdata("user_id", $result->id);
                $this->session->set_userdata("user_name", $result->nome);
                $data["status"] = true;
            } else {
                $data["error_list"]= "Credenciais invalidas";    
            }    
        }
        else
        {
            $data["error_list"] = "Credenciais invalias";  
        }
        echo json_encode($data); 

    }

Ajax запрос:

    $(function(){

          // quando ocorrer o submite no form esse evento sera carregado
          $("#login-formulario").submit(function(){

              //chamando a funcao ajax 
              $.ajax({
                  type: "post", //tipo da requisicao
                  url: BASE_URL + "login/get_user", //url que será chamada
                  dataType: "JSON",
                  data: $(this).serialize(),
                  beforeSend: function(){
                      clearError();
                      $("#loading").html(loadingImg());
                  },
                  success: function(){
                      if(data['status'] == true){
                          clearError();
                          $("#loading").html(loadingtrue());
                       }
                      else{

                          ShowError(data['error_list']); 
                      }
                  },
                  error: function(response){
                     console.log(response);
                  } 
              })
              return false;
          })
      }) 

Ответы [ 3 ]

1 голос
/ 21 февраля 2020

В Ajax Успешная функция, которую вы не получили от контроллера

   success: function(ResponseData){
           if(ResponseData.status == true){
                      clearError();
                      $("#loading").html(loadingtrue());
                   }
                  else{
                      ShowError(ResponseData.error_list); 
                  }      
      }
1 голос
/ 21 февраля 2020

Я надеюсь, это поможет вам

                 success: function(data){
                      if(data.status == true){
                          clearError();
                          $("#loading").html(loadingtrue());
                       }
                      else{

                          ShowError(data.error_list); 
                      }
                  },
0 голосов
/ 21 февраля 2020

Исправьте вашу декларацию

$data = array();
$data["error_list"] = array();
$data["status"] = false;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...