2017-12-10 10 views
1

내 코드에 문제가 있습니다. 내 데이터 테이블Ajax.reload 데이터 테이블에서 변수 값이 변경되지 않았습니다.

이 코드에서 year 값을 변경할 수 없습니다 얻는 실제 년도 :

var yearDate = new Date(); 

var year = yearDate.getFullYear(); 

내 데이터 테이블 방법 :

$(document).ready(function() { 

    januaryTable = $('#january').DataTable({ 

     "processing": true, 
     "serverSide": true, 
     "order": [], 


     "ajax": { 
      "url": "<?php echo site_url('gastos/ajax_list/')?>" + year+'-01-01' +'/'+ year+'-01-31', 
      "type": "POST", 

     }, 

     "columnDefs": [ 
      { 
       "targets": [ -1 ], 
       "orderable": false, 
      }, 
     ], 

    }); 
} 

이 코드는 다시로드 내 데이터 테이블

function reload_january_table() 
{ 
    januaryTable.ajax.reload(null,false); 

} 

선택 방법으로 var year을 변경하고 reload_january_table() 함수를 호출합니다. 예를 들어 값 2016을 선택하면 테이블에 2016의 값이 전달되지 않고 2017 값이 유지됩니다.

나를 도와 줄 사람이 있습니까? 그리고 영어가 유감 스럽다면 좋지 않습니다.

+0

_select 방법은 어떻게 구현 되었습니까? – dferenc

+0

함수에서 사용하기 때문에 var year 값이 변경되었습니다. –

+0

함수 redirect (obj) { var yearO = obj.value; 년 = yearO; reload_january_table(); reload_january_total_invoice(); } –

답변

1

문제는 테이블이 초기화 될 때 ajax.url 만 평가되므로 연도 변수의 첫 번째 값이 URL에 "불에"들어옵니다.

dataTable.ajax.url('NEW_URL').load(); 

당신은 ajax.url() 아래 DataTables 문서의 관련 부분을 발견 할 것이다 :

이 솔루션은 그래서 같은 해 값이 변경 될 때 DataTables에 대한 새로운 URL을 설정하는 것입니다.

특정 경우에 reload_january_table(year) 함수 호출에 새로운 연도 값을 인수로 전달할 수 있으며 해당 함수를 아래와 같이 사용하게하십시오.

function reload_january_table(year) { 
    var newUrl = "<?php echo site_url('gastos/ajax_list/')?>" + year + '-01-01' + '/' + year + '-01-31'; 

    januaryTable.ajax.url(newUrl).load(); 
} 
+0

고마워요, 지금 작동합니다. –