2017-08-10 79 views
3

我一直在使用數據表一段時間,但顯然,我沒有以正確的方式使用它們。jquery數據表功能無法操作

在過去,我將開始我的數據表使用$。員額,具體如下:

$(document).ready(function() { 
    $.post('process/recordTables.php', function(data) 
    { 
    var table = $('#example1').DataTables(); 
    table.clear(); 
    var obj = JSON.parse(data); 
    obj.forEach(function(item) 
    { 
     table.row.add([item.column1, item.column2, //and so on]); 
    }); 
    table.draw(); 
    }); 
}); 

上面的代碼工作。我的數據表打印我需要的數據。在obj.forEach中,如果需要,我可以設置具有href標記和其他功能的列。

但是,如果我想能夠在設定的時間間隔重新加載數據表,我不能使用上面的方法。它必須使用「ajax」方法。

幾個試錯後,使用下面的代碼,我能夠打印出的jQuery數據表的「正確」的形式(和使用):

$(document).ready(function() 
{ 
    $('#example1').DataTable({ 
    "processing": true, 
    "serverSide": true, 
    "ajax": { 
     "url": "process/recordTables.php", // same url as the above code 
     "type": "POST", 
     "dataSrc": '' 
    }, 
    "columns": [ 
     { "data": "" }, 
     { "data": "column1" }, 
     { "data": "column2" }, 
     { "data": "column3" }, 
     // and so on 
    ], 
    "iDisplayLength": 25, 
    "order": [[ 3, "desc" ]], 
    "scrollY": 550, 
    "scrollX": true, 
    "bDestroy": true, 
    "stateSave": true, 
    // few others that don't seem to affect functionality 
    }); 
}); 

使用代碼立即上面,我能夠使用$ .post方法顯示相同的數據。

但是......沒有一項功能可行。排序不起作用。分頁,搜索過濾器和表格底部的數據信息顯示「0個0條目」。什麼都沒有

我錯過了什麼來解決這個問題?我很困惑。

預先感謝您。

*編輯*

下面是HTML表:

<table id="example1" class="table table-bordered table-hover table-condensed"> 
<thead> 
    <tr> 
    <th></th> 
    <th>Column1</th> 
    <th>Column2</th> 
    <th>Column3</th> 
    // and so on 
    </tr> 
</thead> 
<tbody> 
</tbody> 
</table> 
+1

你能後的行動與此DataTable相關的HTML?並且具有值爲''的屬性dataSrc將不顯示數據。完全刪除該屬性。 – Cratebox99

+0

添加了表格。我確實有TR和TD標籤與TBODY,但仍得到相同的結果。 –

+1

您的HTML很好,只要th計數與dataTable定義中的列匹配,就不需要觸摸它。 – Cratebox99

回答

2

當您添加"serverSide": true,屬性,你設置你的DataTableserver-side processing。在這種情況下,所有的客戶端處理被禁用:

使用服務器端的處理功能後,所有頁面,搜索,排序是數據表進行轉交給了服務器

+0

@davidkonrad我犯了一個錯誤,並複製了錯誤的屬性... snap。現在糾正。 –