2017-03-25 9 views
0

jquery datatable을 사용하여 데이터를 표시하고 있습니다. 페이징 기능을 사용자 정의합니다. 예를 들어 각 페이지에는 10 개의 레코드가 있습니다. 먼저 내 함수는 10 개의 레코드를 가져옵니다. 사용자가 다음 버튼을 클릭하면 내 함수는 10 개 이상의 레코드를 가져옵니다. 사용자가 '이전'버튼을 클릭하면 내 기능이 마지막 페이지를 저장합니다. 왜냐하면 사용자가 '다음'버튼을 클릭하면 동일한 레코드가 다시 꺼내 지 않기 때문입니다. 기존 레코드가 표시됩니다. 따라서 동일한 기록이 발생하지 않습니다. 그러나 사용자가 결코 뒤로 버튼을 클릭하지 않은 경우. 예를 들어 3 페이지에서 사용자가 coloumn을 정렬 한 다음 마지막 페이지 번호를 저장하지 않고 첫 번째 페이지를 표시하는 경우 그래서 사용자가 다음 버튼을 클릭하면 동일한 레코드가 한 번 더 페치됩니다. 그리고 같은 기록이 표에 나타납니다. 그래서 jquery 테이블 coloumn 정렬 후 마지막 페이지 번호를 저장해야합니다. 나는 해결책을 찾기 위해이 문제를 조사했다. 난 단지 아래와 같은 해결책을 찾을 :Jquery Datatable에서 열을 정렬 한 후 마지막 페이지 번호 저장

내가 (때문에 첫 페이지를 보여주는의) coloumn 정렬 한 후, 마지막 페이지 번호를 저장할 수있는 방법
$('#example').dataTable({ 
    stateSave: true 
}); 

. 그리고 어떻게하면 서버에서 데이터를 가져올 때 변수에 마지막 페이지 번호를 저장할 수 있습니다.

답변

0

다음 예제는 서버에 전송 된 요청 매개 변수에 현재 페이지와 이전 페이지 번호를 추가합니다.

<?php 

$currentPage = $_POST['currentPage']; 
$previousPage = $_POST['previousPage']; 

?> 
: 당신이 PHP를 사용하는 경우

서버 측에
$(document).ready(function() {  
    //vars   
    var previousPage = null; 

    // DataTable 
    var table = $('#example').DataTable({ 
     "serverSide": true, 
     "ajax": { 
      "url": "yourAjaxDataSource.url", 
      "type": "POST", 
      "data": function (dtData) { 
         var info = $('#example').DataTable().page.info(); 
         var currentPage = info.page + 1;   
         var customData = $.extend({}, dtData, { 
              "currentPage": currentPage, 
              "previousPage ": previousPage 
              }); 
         return customData; 
        } 
     }, 
     "columns": [ 
      {//1st Column: 
       "data": "foo" }, 
      {//2nd Column: 
       "data": "bar" } 
     ], 

     //this will always be called after the table is drawn 
     "drawCallback": function(settings) { 
      var info = $('#example').DataTable().page.info(); 
      previousPage = info.page + 1; 
     } 
    }); 
}); 

, 당신은 당신이 다음과 같이 추가 된 새로운 요청 매개 변수에 액세스 할 수 있습니다