2012-07-06 55 views
1

更新:jQuery的數據表與點燃,數據表笨

我終於找到了這個問題的解決方案。如果你面臨同樣的 問題,因爲我的,你可以嘗試要當我使用默認的數據表sServerMethod財產是Jquery DataTablesCodeIgniter Ignited-Datatables

整合時,訪問這個link

我有問題「GET」,我得到了來自我的PHP數據的JSON響應。然而,由於CodeIgniter使用後,我堅持加載服務器數據,雖然該函數返回我正確的JSON輸出。

enter image description here

所以我遵循這個guide改變sServerMethod爲 「POST」。現在我不在加載服務器數據,但我沒有得到我需要的數據。

使用 sServerMethod GET(得到正確的JSON,但停留在加載服務器數據的圖像)

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

JSON響應

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

這是

JSON響應我的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();    

} 
+0

**「GET STUCK」**是什麼意思?請你一個督察(谷歌鉻/螢火蟲/等),並告訴我們什麼是錯誤... – Jakub 2012-07-06 04:47:55

+0

我使用螢火蟲,不幸的是沒有錯誤。在使用「sServerMethod」時,我只能從服務器獲取消息加載數據(請參閱圖像):「GET」 – cyberfly 2012-07-06 06:27:08

+0

如果您有解決方案作爲答案,請在此處接受它。如果沒有,那麼還有另一個選擇「回答你自己的問題」,然後解釋你發現的解決方案。 – shababhsiddique 2013-03-23 13:50:13

回答

1
$('#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. 
2

如果以上仍方法不起作用,那麼它的,因爲你已經設置:$ config ['csrf_protection'] = true; //你笨

的配置

只需添加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 
       }); 
      } 
0

任何時候,你就死在從服務器加載數據.....它基本上由引起列集。 只需計算「aoColumns」數組並確保與您的視圖文件中設置的表頭完全相同。

它發生在我身上一次又一次......唯一的解決方案一直是列數組集。