2

fnGetData() 함수를 사용할 수 있지만 필자가 사용중인 페이지에 대한 데이터 만 가져옵니다. 현재 표시되지 않은 페이지에서도 모든 데이터를 가져오고 싶습니다. 내 목적은 모든 위도 & 경도 필드를 가져 와서 Google지도 v3을 사용하여지도에 표시 할 수있게하는 것입니다.페이지 매김을 사용할 때 DataTables.net에서 모든 데이터 행을 얻는 방법

이 코드가 있지만 현재 페이지의 데이터 만 가져옵니다.

var table = $('#example1 table').dataTable(); 
      var data = table.fnGetData(); 
      console.log(data); 
+0

이것은 문서화 된 방법이 아닙니다. 이 동작을 보여주는 데모를 제안하십시오. – charlietfl

+1

코드가 1.9.x 및 1.10.x에서 즉시 작동합니다. params가없는'fnGetData'는 각 행의 컬럼 값을 하위 배열로 가지는 모든 행을 가진 배열을 반환합니다. – davidkonrad

답변

-1
use the fnSettings().fnRecordsTotal() of the datatable. 
example : http://www.datatables.net/forums/discussion/2401/record-count-with-server-side-processing 

내가 전에 그것을 사용하고 난 당신에게 조각 줄 수 있다고 생각 : 서버 측 처리가 활성화되어

var table = $('#table ').DataTable(
{ 
         "dom" : 'rtp', // Initiate drag column 
         "fnDraw" : false, 
         "serverSide": true, 
         "ajax" : ... ... 
          } 
         }), 
         "fnDrawCallback" : drawCallBack, 
}); 

unction drawCallBack() { 
    console.log(this.fnSettings().fnRecordsTotal()); 
} 
1

('serverSide': true), 참으로 모두 1.9.x 기능 fnGetData()를 및 1.10.x 함수 data()은 현재 페이지에 대해서만 데이터를 반환합니다.

이 동작은 Server-side processing example을보고 콘솔 $('#example').dataTable().fnGetData() 또는 $('#example').DataTable().data()에서 실행하여 확인할 수 있습니다.

모든 데이터를 검색하려면 DataTables의 동작을 모방 한 별도의 AJAX 요청을 만들어야합니다.

질문에 datatables-1.10 태그가 지정되어 있으므로 DataTables 1.10.x를 사용하고 있다고 가정합니다. 마지막 Ajax 요청에서 DataTables가 서버에 제출 한 데이터를 가져 오는 ajax.params()을 사용할 수 있습니다.

function processAllRecords(){ 
    var req = $('#example1 table').DataTable().ajax.params(); 

    // Reset request parameters to retrieve all records 
    req.start = 0; 
    req.length = -1; 
    req.search.value = ""; 

    // Request data 
    $.ajax({ 
     'url': 'script.php', 
     'data': req, 
     'dataType': 'json' 
    }) 
    .done(function(json){ 
     // json.data is array of data source objects (array/object), 
     // one for each row 
     console.log(json); 
    }); 
} 
관련 문제