2017-11-27 13 views
0

서버 측 jquery datatable 1.10.16을 사용하고 있습니다. 업데이트 된 매개 변수를 사용하여 datatable 아약스를 요청하여 데이터를 다시로드하려고합니다. 나는 아래의 데이터 테이블 API를 사용하고있는 데이터 테이블 다시로드하려면 :Datatables ajax reload가 동적으로 업데이트되는 요청 매개 변수를 무시합니다.

 $('#dateSelector').on('apply.daterangepicker', function(ev, picker) { 
       DATE_RANGE[0] = picker.startDate.format('DD-MM-YYYY'); 
       DATE_RANGE[1] = picker.endDate.format('DD-MM-YYYY'); 
       console.log(DATE_RANGE); // here I am getting updated value properly 
// reloading the datatable , but the parameters are the previous one 
       $('#user_data').DataTable().ajax.reload(); 
      }); 
:

$('#user_data').DataTable({ 
     // to hide search filter 
     "searching": false, 
     "lengthMenu": [[5, 25, 50], [5, 25, 50]], 
     processing: true, 
     serverSide: true, 
     ajax: { 
      "url": '/admin/getStats', 
      "data": {user_id: user_id, date_range: JSON.stringify(DATE_RANGE)}, 

     }, 
     columns: [ 
      {data: 'name', name: 'name'}, 
      {data: 'date', name: 'date'}, 
      {data: 'country', name: 'country'} 
     ] 
    }); 

DATE_RANGE와 USER_ID는 다음과 같이 업데이트되는 글로벌 변수 :

$('#user_data').DataTable().ajax.reload(); 

내 데이터 테이블 initailization이 아래에 주어진다을

업데이트 된 매개 변수를 전달하는 방법은 무엇입니까?

+0

데이터 테이블 설정에서 캐시를 비활성화 해 보셨습니까? –

+0

어떻게 그럴 수 있습니까? – subhajit

+0

초기화시 데이터 테이블에 "cache": false를 추가했지만 여전히 이전 매개 변수가 유지됩니다. – subhajit

답변

0

oSettings의 테이블에 대한 캐싱을 사용하지 않도록 설정하십시오. [이 매개 변수는 DT 버전에 따라 변경됩니다. 사용중인 버전의 문서를 참조하십시오] 을이 바로

table.ajax.reload(); 

전화를 호출 한 후 :.

table.ajax.clearAjaxParams(); 

가 다시이 기반 버전으로 변경됩니다. 설명서를 참조하십시오.

0

마지막으로 어떻게 든 해결되었습니다. 미래의 사람들이해야 할 수 있습니다에서 :

$(document).ready(function() { 
    fetchData(); 
}); 

function fetchData() { 
$('#user_data').DataTable({ 
     // to hide search filter 
     "searching": false, 
     "lengthMenu": [[5, 25, 50], [5, 25, 50]], 
     processing: true, 
     serverSide: true, 
     ajax: { 
      "url": '/admin/getStats', 
      "data": {user_id: user_id, date_range: JSON.stringify(DATE_RANGE)}, 

     }, 
     columns: [ 
      {data: 'name', name: 'name'}, 
      {data: 'date', name: 'date'}, 
      {data: 'country', name: 'country'} 
     ] 
    }); 
} 

$('#dateSelector').on('apply.daterangepicker', function(ev, picker) { 
..... 
.... 

    $('#user_data').DataTable().destroy(); 
    fetchData(); 
}); 
0

난 그냥 데이터 테이블을 다시 그릴 경우, 업데이트 된 매개 변수를 사용하여 새 게시 요청이 서버로 전송 될 것이라 생각합니다.

$('#dateSelector').on('apply.daterangepicker', function(ev, picker) { 
    $('#user_data').DataTable().draw(); 
}