2016-07-18 3 views
0

현재 jQuery Datatables 플러그인을 사용 중입니다.jQuery Datatable - 데이터 URL 변경

이제 버튼 입력시 제출되는 양식 입력 값에 따라 아약스 데이터 소스를 변경할 수 있어야합니까?

이 작업을 수행하는 데 권장되는 방법은 무엇입니까?

$(document).ready(function() { 

     $('#btnReport') 
      .click(function() { 
       var table = $('#reports').DataTable(); 
       table.ajax.reload(); 
      }); 

     var querystring = '?from=' + $('#datetimepickerFrom').val() + '&till=' $('#datetimepickerFrom').val(); 

     var url = '/api/reports/custom'; 

     var table = $("#reports").DataTable({ 
      ajax: { 
       url: url + queryString, 
       dataSrc : "" 
      }, 
      columns: [ 
       { 
        data: "fullName" 
       }, 
       { 
        data: "timeIn" 
       } 
      ] 
     }); 

    }); 

많은 감사

답변

1

사용 ajax.url()ajax.url().load() 해당 URL에서 테이블 및로드 데이터에 대한 URL을 설정합니다. 예를 들어

:

function getDataTableUrl(){ 
    return 
     '?from=' + $('#datetimepickerFrom').val() 
     + '&till=' + $('#datetimepickerFrom').val(); 
} 

$('#btnReport') 
    .click(function() { 
     var table = $('#reports').DataTable(); 
     table.ajax.url(getDataTableUrl()).load(); 
    }); 
+0

덕분에,이 내가 해결 된 코드에서 오류가 발생했습니다 – adnan

+0

@adnan을 필요로했던 것 같다. –

+0

위의 내용을 좀 더 유연하고 효율적으로 접근 할 수 있습니다 (초기 요청에 대한 값이 필요하다고 가정하면) getDataTableUrl() 함수 호출을 데이터 테이블 초기화에 넣는 것이 좋습니다. 'ajax : {url : getDataTableUrl()}'을 호출 한 다음 다시로드해야하는 곳에서'table.ajax.reload() '를 호출하십시오. –