【发布时间】:2012-04-19 18:51:20
【问题描述】:
我正在使用 Codeigniter 构建一个管理面板应用程序,并希望使用 jQuery DataTables 的服务器端处理方法获取我的成员记录(因为我有相当多的成员记录)。我正在使用Ignited DataTables CI 库来获取并尝试显示我的数据。我能够使用独立版本的 Datatables 服务器端实现找到 here,但希望使用 CodeIgniter 使其与我的应用程序的其余部分保持一致。到目前为止,这是我的代码:
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"
}
我们将不胜感激!
【问题讨论】:
-
11007 条记录相当多,不是吗?您是否尝试过使用更少(例如 100 个)对其进行测试?它可能会重载 DataTables。
-
我想通了... IgnitedDataTables 库仅检查 $_POST 数据,而我的脚本将参数作为 $_GET 数据发送。我修改了库以检查两个输入流 (@987654327 @)。希望这可以帮助其他陷入困境的人。
-
@EricPaulsen:为了将来的访问者的利益,请随时在下面发布(并接受)您的答案。
-
我面临同样的问题,你改变了哪一行或者你将所有 $this->ci->input->post() 替换为 $this->ci->input->get_post ()?我后来做了,但结果只有两行。
标签: php codeigniter datatables