2016-10-16 26 views
0

フィルタを使用してデータテーブルを作成しています。私はAjaxを10秒ごとに使用して、新しいデータをフェッチし、新しい行をテーブルに追加します。あなたは私がそれらをフィルタリングしたり、検索できるように、新しいデータでテーブルを更新したり、描画しようとしている見たようajax呼び出し後にデータテーブルを再描画

$(function() { 
    setInterval(checkNew,1000*10); 

    $("#orderdate").datepicker({ 
     changeMonth: true, 
     changeYear: true, 
     yearRange: '2013:2050', 
     dateFormat:"dd-mm-yy", 
     showAnim:"fold" 
    }); 

    var table = $('#data').DataTable({ 
     "lengthMenu": [[-1], ["All"]], 
     "bSort": false, 
     "paging": false, 
    }); 

    $("#status").change(function() { table.column(4).search($(this).val()).draw() }); 

}); 

function checkNew(){ 
    $.post('getdata.php',{max: $("#lastid").text().trim() }).done(function (data) { 
     if(data.trim() !== '') { 
      $("table#data").prepend(data.trim()); 
      //need to draw datatable to filter and search new data added to the table 
     } 
    }); 
} 

(表のデータはありませんアヤックスで同じページに動的です)。新しいデータを検索すると、DOMでロードされていないため表示されません。しかし、私は正確に新たな付加データをフィルタリングして検索するためのテーブルを描画するためにとにかくコードを編集するために、どのように私は

$("table#data").DataTable().draw(); // new rows are added but can't be searched or filtered 

そして

$('table#data').dataTable().fnDraw(); //new rows are not added 

を試してみたテーブルを再描画することはできませんか?

答えて

1

データテーブルは、テーブルにbuilt-in functionality for handling loading data from an ajax requestを提供します。さらに、テーブルのデータを更新するreloadメソッドを提供します。その後、

var table = $('#data').DataTable({ 
    ajax: "getdata.php" 
}); 

と::

あなたのケースでは

、あなたのような何かを行うことができるはず

setInterval(function() { 
    table.ajax.reload(); 
}, 10000); 

あなたはリロード関数の引数として渡したいことがあり、追加のオプションがあります。あなたのユースケースに応じて。私はこれが助けて欲しい! getdata.phpで

+0

と行 $ myrows [] = " ​​"。$行[ '受注']。 " ​​" $行を[取得lopp内部'ファーストネーム']。' 」。$行[ 'LAST_NAME']。 " ​​" .date( 'DM-Y'、$行[ 'UNIX_TIME'])。 " ​​" $行[ '' final_total]。」 ​​"。$ row ['name']。" "; } echo json_encode($ myrows); のインデックスにこのエラーが発生しました '無効なjson応答' –

+0

[更新] ループ内:$ arr [] = $ row;情報の行全体を取得するには、特定のデータを4フィールドだけ選択して、同じエラーが表示されるようにする必要があります。 "orderid、order.unix_time、orders.final_total、orders.user_id、orders.auto_cancel、users .idはユーザーIDで、users.first_name、users.last_name、 payment_methods_translation.payment_method_id、payment_methods_translation.nameはorders.id = '$ id'、orders.user_id = users.idおよびorders.payment_method_id = payment_methods_translation.payment_method_idとorders.auto_cancel = '1' " –

+0

[更新]コードを正しく変更していますが、コンソールのネットワークタブでこのajaxが見つかりました" mydomain.com//getdata.php?_=1476648685734 "not" mydomain.com//getdata.php?_=1476648685734 "これはajaxのURLが正しくないことを意味します。私はなぜそれが変更されたのかわからないので、私はエラーが発生します(ドメインはhttpsです) –

関連する問題