Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript DataTables警告:当表中没有记录时,JSON响应无效_Javascript_Jquery_Html_Datatables_Codeigniter 3 - Fatal编程技术网

Javascript DataTables警告:当表中没有记录时,JSON响应无效

Javascript DataTables警告:当表中没有记录时,JSON响应无效,javascript,jquery,html,datatables,codeigniter-3,Javascript,Jquery,Html,Datatables,Codeigniter 3,我将CodeIgniter与引导数据表一起使用,以显示数据库中的记录 当表中没有可用的记录时,我得到了错误 DataTables警告:表id=员工列表-JSON响应无效。 有关此错误的详细信息,请参阅 记录在表中可用时显示 我试图找到解决方案,但没有一个解决方案对我有效。我的代码有什么问题吗 我尝试了@BlueWater86答案,错误消失了,但我的记录没有显示 你能帮我解决这个问题吗 我的密码是 脚本 $('#employee-List').DataTable({ language: {

我将CodeIgniter与引导数据表一起使用,以显示数据库中的记录

当表中没有可用的记录时,我得到了错误

DataTables警告:表id=员工列表-JSON响应无效。 有关此错误的详细信息,请参阅

记录在表中可用时显示

我试图找到解决方案,但没有一个解决方案对我有效。我的代码有什么问题吗

我尝试了@BlueWater86答案,错误消失了,但我的记录没有显示

你能帮我解决这个问题吗

我的密码是

脚本

$('#employee-List').DataTable({
  language: {
    sLengthMenu: "Show _MENU_", // remove entries text
    searchPlaceholder: "Search",
    emptyTable: "No record found",
    search: ""
  },
  "ordering": false, // remove sorting effect from header 
  "processing": true,
  "serverSide": true,
  "scrollX": true,
  "bInfo": false,
  "pageLength": 10,
  "ajax": {
    "url": baseUrl + "/Employee_control/fetch_employeeList",
    "type": "POST",
    "dataSrc": ""
  },
  "columns": [{
      "data": "id",
      "className": "reg_bg"
    },
    {
      "data": "name"
    },
    {
      "data": "email"
    },
    {
      "data": "mobileno"
    },
    {
      "data": "emp_id"
    },
    {
      "data": "address"
    },
    {
      "data": "action"
    }
  ]

});
控制器

public function fetch_employeeList(){
  $order_list=$this->Employee_model->fetch_employeeList();

// Datatables Variables
$draw = intval($this->input->get("draw"));
$start = intval($this->input->get("start"));
$length = intval($this->input->get("length"));

$data['draw'] = 1;
$data['recordsTotal'] = count($order_list);
$data['recordsFiltered'] = count($order_list);
foreach ($order_list as $key => $row) 
{
$action='<a href="" class="action-btn action-btn-border">View</a><a href="" class="action-btn action-btn-red-bg">Archive</a>';
$arr_result = array(
            "id" =>$row->id,
            "name" => $row->firstname." ".$row->middlename." ".$row->lastname,
            "email" => $row->email_id,
            "mobileno" => $row->mobileno,
            "emp_id" => $row->employee_id,
            "address" => $row->address,
            "action" => $action
);

$data['data'][] = $arr_result;

}
//print_r($arr_result);
echo json_encode($data);
exit;
}

在静态类型语言中,不会遇到这种问题。如果考虑<代码> FutCHYEngEclipse()/Cux>函数的接口,它会返回动态的;有时是对象数组,有时是数字0

如果没有员工查询结果,则应返回空数组,而不是数字0

public function fetch_employeeList(){
        $this->db->select('*');
      $this->db->from('tbl_employee');

        $query = $this->db->get();
        $result = $query->result();
        if($result)
      {
          return $result;
      }
      else{
          return [];
      }
    }

如果要在控制器中获取数据,为什么要注释
serverSide:true
参数?实际上,我正试图找到解决此问题的方法。我启用了它。您是否检查了对
/Employee\u control/fetch\u employeeList
的ajax调用返回的数据?您通过从
fetch_employeeList
函数返回两种不同的类型(如果有员工,则返回对象;如果没有员工,则返回整数)引入了此错误。@BlueWater86,在网络选项卡响应中,我收到错误消息:count():参数必须是一个数组或一个实现可计数的对象,因为表中没有记录。因此,
fetch\u employeeList
是否始终返回一个实现可计数的对象?是的,错误发生,我得到了“找不到记录”现在我添加了一条记录,但我没有得到。。。再次从我这边查看。很抱歉回复太晚,我在这方面又遇到了一个问题。问题是,我在表中有记录,但这些记录没有显示,因为我在ajax调用中添加了“dataSrc”:”。如果我评论dataSrc,然后显示记录。你的评论现在很难理解。听起来你现在要求的是一个教程,而不是一个问题的解决方案。你最初的问题解决了。是的,我最初的问题解决了。我分享了我的第二个问题,因为我认为你知道解决方案……没问题,我会从我这边试试。谢谢你的帮助和支持。如果我用代码示例理解你的评论,我会给予帮助。
public function fetch_employeeList(){
        $this->db->select('*');
      $this->db->from('tbl_employee');

        $query = $this->db->get();
        $result = $query->result();
        if($result)
      {
          return $result;
      }
      else{
          return [];
      }
    }