私はしばらくの間、datatablesで作業してきましたが、明らかに、私はそれらを正しい方法で使用していません。過去にはjquery datatableの機能が動作しない
次のように、私は、$ .postを使用して、私のデータテーブルを起動します:
$(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"メソッドを使用している必要があります。私は、すぐに上記のコードを使用し
$(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
});
});
:以下のコードを使用して、いくつかの試行錯誤の後
は、私はjqueryののDataTableの「正しい」形態(及び使用)を印刷することができました$ .postメソッドを使用して同じデータを表示することができました。ただし、機能は動作しません。並べ替えは機能しません。ページ下部のページネーション、検索フィルタ、データ情報には、「0のうち0エントリ」が表示されます。何も動作しません。
この問題を解決する方法はありますか?私は困惑している。
ありがとうございます。あなたが"serverSide": true
を追加すると、属性、
<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>
は、あなたが投稿でき、サーバに渡されたアクションを注文し、検索、すべてのページング、有効このDataTableに関連するHTML?値 ''の属性dataSrcを持つと、データは表示されません。その属性を完全に削除します。 – Cratebox99
テーブルを追加しました。私はTBとTDタグを持っていましたが、同じ結果が得られました。 –
あなたのHTMLは問題ありません.thatがdataTable定義の列と一致していれば、それに触れる必要はありません。 – Cratebox99