2012-04-19 4 views
0

Я создаю приложение панели администрирования с помощью Codeigniter и хотел бы получить мои записи участников с помощью метода обработки на стороне сервера jQuery DataTables (так как у меня довольно большое количество членов записи). Я использую библиотеку CI Ignited DataTables для извлечения и попыток отображения моих данных. Я смог получить эту работу с автономной версией Datatables Server Side Implementation, найденной here, но хотел бы, чтобы эта работа работала с CodeIgniter, чтобы быть в соответствии с остальной частью моего приложения. Вот мой код до сих пор:jQuery DataTables с 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" 
} 

Любая помощь будет оценена!

+0

11007 записей довольно много, нет? Вы пробовали тестировать его с меньшим количеством (скажем, 100)? Это может привести к перегрузке данных. – Seabass

+1

Я понял это ... библиотека IgnitedDataTables проверяла только данные $ _POST, и мой скрипт отправлял параметры как $ _GET data. Я изменил библиотеку, чтобы проверить как входные потоки (вход 'this this>> ci-> -> get_post() '). Надеюсь, это поможет другим людям, которые застряли в дороге. –

+2

@EricPaulsen: Не стесняйтесь публиковать (и принимать) свой ответ ниже в интересах будущих посетителей. –

ответ

0

Вы должны модифицировать библиотеку для работы с POST вместо GET

или

Вы должны настроить DataTable для работы с GET

здесь является примером метода настройки, использовать его для удовлетворить ваши потребности

http://www.datatables.net/release-datatables/examples/server_side/post.html

Смежные вопросы