Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.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 如何创建完全基于AJAX的jQuery数据表?_Javascript_Jquery_Ajax_Datatable - Fatal编程技术网

Javascript 如何创建完全基于AJAX的jQuery数据表?

Javascript 如何创建完全基于AJAX的jQuery数据表?,javascript,jquery,ajax,datatable,Javascript,Jquery,Ajax,Datatable,只要行数不是907234,dataTable的默认行为是好的。我想使用面向Ajax的工作,所以每页10条记录,等等。我知道我可以设置Ajax源代码,但只能设置一次,然后分页将是未来的趋势。(如果datatable不知道记录的数量,它将如何工作?)。那么如何启动呢?Datatable的服务器端方法如下: $('#dataTable').dataTable({ "sServerMethod": "GET", "bProcessing": true, "bServerSide": true

只要行数不是907234,dataTable的默认行为是好的。我想使用面向Ajax的工作,所以每页10条记录,等等。我知道我可以设置Ajax源代码,但只能设置一次,然后分页将是未来的趋势。(如果datatable不知道记录的数量,它将如何工作?)。那么如何启动呢?

Datatable的服务器端方法如下:

$('#dataTable').dataTable({
  "sServerMethod": "GET",
  "bProcessing": true,
  "bServerSide": true,
  "sAjaxSource": "data.php",
  "aoColumns": [null, null, null, { "bSortable": false }],
  "order": [[ 1, "asc" ]],
  "oLanguage": {"sZeroRecords": "No Members found", "sEmptyTable": "No members to display"},
});
后端(即data.php)应如下所示:

<?php
            $start  = $_GET['iDisplayStart'];
            $length = $_GET['iDisplayLength'];
            $sSearch = $_GET['sSearch'];
            $col = $_GET['iSortCol_0'];
            $arr = array(1 => 'oe.org_given_id', 2 => 'usr.name');
            $sort_by = $arr[$col];
            $sort_type = $_REQUEST['sSortDir_0'];

            $query = "SELECT usr.id,usr.name,oe.org_given_id FROM users usr JOIN organization_employees oe on usr.id=oe.employee_id WHERE oe.organization_id=".$organization_id." AND (usr.name LIKE '%".$sSearch."%' OR oe.org_given_id LIKE '%".$sSearch."%') ORDER BY ".$sort_by." ".$sort_type." LIMIT ".$start.", ".$length;
            $db=new DB();
            $resultSet=$db->SelectRead($query);
            while($row = mysqli_fetch_assoc($resultSet))
            {
              $data[] = $row;
            }
            $counterQuery = "SELECT COUNT(usr.id) as total FROM users usr JOIN organization_employees oe on usr.id=oe.employee_id WHERE oe.organization_id=".$organization_id.";";
            $countSet = $db->SelectRead($counterQuery);
            $iTotal=0;
            while($counterRow =  mysqli_fetch_assoc($countSet))
            {
              $iTotal = $counterRow['total'];
            }
            $rec = array(
              'iTotalRecords' => $iTotal,
              'iTotalDisplayRecords' => $iTotal,
              'aaData' => array()
            );
            $k=0;
            if (isset($data) && is_array($data))
            {
              foreach ($data as $item)
              {
                $rec['aaData'][$k] = array(
                                      0 => $k,
                                      1 => $item['org_given_id'],
                                      2 => $item['name'],
                                      3 => "Delete"
                                    );
                $k++;
              }
            }
            header("Content-type:application/json");
            echo json_encode($rec);
?>

这些参数包括:
iDisplayStart
iDisplayLength
等默认由数据表提供

一些在线工作示例包括:

下面是我的代码的github存储库,当然还有一些附加功能:


我将尝试在线为您提供一个工作链接。