首页 > 解决方案 > CodeIgniter 不会从控制器获取回显数据到 Ajax

问题描述

ajax 请求正在工作并访问成功功能,问题是当我尝试使用echo json_encode($data).

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

我有以下错误:未捕获的引用错误:未定义数据

你们能告诉我为什么会这样吗?

控制器:

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

    }

阿贾克斯请求:

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

标签: phpjqueryajaxcodeigniter

解决方案


在 Ajax Success Function 中,您没有得到控制器的响应

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

推荐阅读