2012-04-19 67 views
0

我正在构建使用Codeigniter的管理面板应用程序,并希望使用jQuery DataTables的服务器端处理方法来获取我的成员记录(因为我有相当多的成员记录)。我正在使用Ignited DataTables CI库来获取并尝试显示我的数据。我可以使用独立版本的Datatables Server Side Implementation找到here,但希望将它与CodeIgniter配合使用,以便与我的其他应用程序保持一致。这里是我到目前为止的代码:带有Codeigniter的jQuery数据表不显示数据

CI控制器:

$this->load->library('DataTables'); 
$this->load->model('table_model', 'table'); 

$this->datatables->select('member_id, username,email, first_name, last_name') 
       ->from($this->table->getTable('members')) 
       ->join($this->table->getTable('groups'), 'members.group_id = member_groups.group_id', 'left') 
       ->select('group_title'); 

echo $this->datatables->generate(); 
exit; 

HTML:

<table id="members"> 
    <thead> 
     <tr> 
      <th>Member ID</th> 
      <th>Username</th> 
      <th>Email</th> 
      <th>First Name</th> 
      <th>Last Name</th> 
      <th>Group Name</th> 
     </tr> 
    </thead> 
    <tbody> 
     <tr> 
      <td colspan="7" class="dataTables_empty">Loading members...</td> 
     </tr> 
    </tbody> 
</table> 

的jQuery:

$(document).ready(function() { 
    $("#members").dataTable({ 
     "bProcessing" : true, 
     "bServerSide" : true, 
     "sAjaxSource" : "/members/fetch_members", 
     "sPaginationType" : "full_numbers" 
    }); 
}); 

JSON响应:

{ 
    "sEcho": 0, 
    "iTotalRecords": 11007, 
    "iTotalDisplayRecords": 11007, 
    "aaData": [ //member records here], 
    "sColumns": "member_id,username,email,first_name,last_name,group_title" 
} 

任何和所有的帮助,将不胜感激!

+0

11007记录相当多,不是吗?你有没有尝试用更少的(比如说100)来测试它?它可能会超载DataTables。 – Seabass 2012-04-19 19:02:23

+1

我想明白了...... IgnitedDataTables库只是检查$ _POST数据,而我的脚本发送的参数是$ _GET data.I修改了库以检查两个输入流('$ this-> ci-> input - > get_post()')。希望这可以帮助那些陷入困境的人。 – 2012-04-19 19:33:28

+2

@EricPaulsen:随时发布(并接受)您的答案,为未来的访问者带来益处。 – 2012-04-19 20:22:30

回答