間隔でロードするテーブルを取得しようとしています。jQuery DataTablesリロード間隔エラー
TypeError: g is null
ユーザーはフォームパラメータを入力してから、クリックイベントが発生した送信ボタンを押します。次のように:
$('#example').DataTable().ajax.reload();
お知らせテーブル名は 'でした:
$('.searchSubmit').on('click', function()
{
var data = {
searchCriteria: {
bill: $('#import_bill').val(),
ramp: $('#import_ramp').val(),
// few other parameters
}
};
$.ajax({
url: 'api/railmbs.php',
type: 'POST',
data: data,
dataType: 'html',
success: function(data, textStatus, jqXHR)
{
var jsonObject = $.parseJSON(data);
var table = $('#example1').DataTable({
"data": jsonObject,
"columns": [
{ "data": "BILL" },
{ "data": "RAMP" },
// few more columns
],
"iDisplayLength": 25,
"paging": true,
"bDestroy": true,
"stateSave": true,
"autoWidth": true
});
var idle = 0;
var idelInterval = setInterval(timer, 10000);
$(this).mousemove(function(e){idle = 0;});
$(this).keypress(function(e){idle = 0;});
function timer()
{
idle = idle + 1;
if(idle > 2)
{
$('#example1').DataTable().ajax.reload(); // <--error occurs here
console.log('table reloaded');
}
}
},
error: function(jqHHR, textStatus, errorThrown)
{
console.log('fail');
}
});
});
をここで私は、エラーが発生した場所を指摘ところ、私はもともとそれはこのように見ていた、上記...面白い部分ですexample1 'の代わりに' example 'と入力します。テーブルIDは実際にはexample1です。なぜなら私は成功関数が始まる場所の近くに示したからです。リロード間隔が異なるテーブルIDを見ているのを見たとき、私はそれを変更しました。これは現在、エラーを上部に引き起こしています。
正しいIDではないため、IDを「example」としておく必要はありません。
これで、エラーが発生するのはなぜですか?
毎回初期化するのではなく、DataTable APIへの参照を保存してください – charlietfl
@charlietfl - 私はそれをどのように行うのでしょうか? –
あなたは既に 'table'を持っています。そして、' table.ajax.reload() 'を使用してください。 – charlietfl