Jquery DataTable с зажженными таблицами данных CodeIgniter

Обновление:

Наконец-то я нашел решение этой проблемы. Если вы столкнулись с той же проблемой, что и моя, вы можете попробовать перейти по этой ссылке

У меня возникла проблема, когда я хочу интегрировать Jquery DataTables с Библиотека CodeIgniter Ignited-Datatables

Когда я использую свойство DataTables sServerMethod по умолчанию, которое равно «GET», я получаю ответ json с данными из моего файла php. Однако, поскольку CodeIgniter использует сообщение, я застрял на загрузке данных сервера, хотя функция возвращает мне правильный вывод json.

введите здесь описание изображения

Поэтому я следую этому руководству., чтобы изменить sServerMethod на "POST". Теперь я не застреваю на загрузке данных сервера, но я не получаю данные, которые мне нужны.

Ответ JSON с использованием sServerMethod GET (получение правильного json, но зависание при загрузке данных сервера, как на изображении)

{
"sEcho": 0,
"iTotalRecords": 10,
"iTotalDisplayRecords": 10,
"aaData": [
    [
        "Munauwar",
        "Syed",
        "Mr",
        "6012345678",
        "0000-00-00",
        "basikal"
    ],        
    [
        "Mak",
        "Je Wei",
        "Mr",
        "6012345678",
        "0000-00-00",
        "motor"
    ]
],
"sColumns": "first_name,last_name,salutation,number,birthday,group_name"}

Ответ JSON с использованием sServerMethod POST

{
"sEcho": 1,
"iTotalRecords": 10,
"iTotalDisplayRecords": 0,
"aaData": [],
"sColumns": "first_name,last_name,salutation,number,birthday,group_name"}

Это мой код javascript

$('#table1').dataTable({
        "bProcessing": true,
        "bServerSide": true,            
        "sPaginationType": "bootstrap",
        "sAjaxSource": config.base_url + "contact/popup_contact",
        "sServerMethod": "POST"

    });

Моя функция в контактном контроллере

function popup_contact()
{
    $this->datatables
         ->select('first_name,last_name,salutation,number,birthday,group_name')
         ->from('tb_contact')
         ->join('tb_contact_group', 'tb_contact.contact_group_id = tb_contact_group.contact_group_id');          

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

}

person cyberfly    schedule 06.07.2012    source источник
comment
что означает ЗАСТРЕТЬ? Пожалуйста, инспектор (google chrome/firebug/etc) и сообщите нам, в чем ошибка...   -  person Jakub    schedule 06.07.2012
comment
Я использую firebug и, к сожалению, ошибки нет. Я получаю только данные загрузки сообщения с сервера (см. изображение) при использовании sServerMethod: GET   -  person cyberfly    schedule 06.07.2012
comment
Если у вас есть решение в качестве ответа здесь, примите его. Если нет, то есть еще один вариант ответа на свой вопрос, и объясните решение, которое вы нашли сами.   -  person shababhsiddique    schedule 23.03.2013


Ответы (3)


Если описанный выше метод по-прежнему не работает, значит, вы установили: $config['csrf_protection'] = true; // в вашей конфигурации Codeigniter

Просто добавьте строку aoData.push первым делом в свой вызов fnServerData:

"fnServerData": function(sSource, aoData, fnCallback) {
            aoData.push({name: '<?php echo $this->security->get_csrf_token_name(); ?>', value: '<?php echo $this->security->get_csrf_hash(); ?>'});
                $.ajax({
                    'dataType': 'json',
                    'type': 'POST',
                    'url': sSource,
                    'data': aoData,
                    'success': fnCallback
                });
            }
person Vrutin Rathod    schedule 10.01.2014

$('#smstable').dataTable({
"bProcessing": true,
"bServerSide": true,
"iDisplayLength": 20,
//"bPaginate": true,
"bAutoWidth": false,
"iDisplayStart": 0,
"bLengthChange": false,//for sorting 10,20,30,50 ....
"sAjaxSource": "././myadmin/ajaxadmin/dt_sms",
"aaSorting": [[ 1, "desc" ]],
"sPaginationType": "full_numbers",
"aoColumns":[
    {"bSearchable": false,"bSortable": false,"bVisible": false},
    {"bSearchable": true,"bSortable": true},
    {"bSearchable": false,"bSortable": false},
    {"bSearchable": true,"bSortable": true},
    {"bSearchable": false,"bSortable": true},
    {"bSearchable": false,"bSortable": false}
],
"fnServerData": function(sSource, aoData, fnCallback){
    $.ajax(
          {
            'dataType': 'json',
            'type'  : 'POST',
            'url'    : sSource,
            'data'  : aoData,
            'success' : fnCallback
          }
      );//end ajx
    // console.log(fnCallback);
}    

});//конец данных

Just check my code and check if you missed something. That code works very fine with me.
person tanix    schedule 25.02.2013

Каждый раз, когда вы застреваете при загрузке данных с сервера ..... это в основном связано с набором столбцов. Просто подсчитайте массив «aoColumns» и убедитесь, что он точно равен заголовку таблицы, установленному в вашем файле представления.

Это случалось со мной снова и снова ..... и единственным решением всегда был набор массивов столбцов.

person Babatunde Misbah    schedule 25.10.2015