2014-02-11 2 views
7

내 프로젝트에서 Datatables를 사용하려고합니다. "fnServerData"콜백 옵션의 사용법을 알고 싶습니다.Datatables에서 fnServerData 이해

$(document).ready(function() { 
    $('#example').dataTable({ 
    "bProcessing": true, 
    "bServerSide": true, 
    "sAjaxSource": "xhr.php", 
    "fnServerData": function (sSource, aoData, fnCallback, oSettings) { 
     oSettings.jqXHR = $.ajax({ 
     "dataType": 'json', 
     "type": "POST", 
     "url": sSource, 
     "data": aoData, 
     "success": fnCallback 
     }); 
    } 
    }); 
}); 

는 "sSource"무엇 "aoData"매개 변수 여기 우리가 어떻게 거기에 값을 공급하고 있습니다 - 나는 문서 Here를 통과하고 예제 코드 다음 보았는가? 또한 JSP 또는 PHP를 소스 (sAjaxSource)로 사용하는 대신 JSON 데이터를 동적으로 가져올 수있는 양식을 제출할 수 있습니까?

답변

22

fnServerData은 자신의 ajax 처리기로 덮어 쓸 수있는 dataTables의 내부 함수입니다. 편리한 jQuery 함수가있는이 경우 Read more here

매개 변수는 dataTables core에 정의되어 있으며이 특정 순서로 필요합니다.

sSource은 데이터 소스가있는 URL입니다. 초기화시에 sAjaxSource의 값으로 설정됩니다. 이 경우 xhr.php

aoData은 데이터 소스로 보낼 매개 변수의 배열입니다. 여기에는 기본적으로 paginationinfo, sortinginfo, filterinfo 등 (코어에 의해 자동 설정되는) dataSource 스크립트가 반응해야하는 항목이 포함됩니다. (예 : sql 쿼리를 페이지 크기로 제한하십시오.) 요청에 더 많은 정보를 보내려면 다른 값을 aoData으로 보낼 수 있습니다. 그래서 같이 :

"fnServerData": function (sSource, aoData, fnCallback, oSettings) { 
       aoData.push({ "name": "Input1", "value": $("#data1").val() }); 
       aoData.push({ "name": "Input2", "value": $("#data2").val() }); 
    oSettings.jqXHR = $.ajax({ 

(입력 1과 입력 2로 POST에서 그들을 양식에서 jQuery를 통해 데이터 1과 데이터 2라는 두 개의 입력 필드의 값을 얻을 포함)

당신이 만약 무엇이 보내지고 있는지 알고 싶다면 Firebugs 콘솔을 사용하여 POST 데이터를 보거나 유형을 GET으로 변경할 수 있습니다. 그런 다음 전달 된 매개 변수가 주소 표시 줄에 표시됩니다 (잘릴 수있는 매우 긴 문자열 일 수 있으므로주의하십시오).

fnCallback 또한 덮어 쓸 수있는 코어의 내장 기능이지만이 경우에는 없습니다. 데이터가 수신 된 후 JS에서 후 처리를 수행하려는 경우 사용자가 직접 함수를 제공해야합니다.

질문의 두 번째 부분에 대해 : 물론 PHP 또는 JSP를 사용할 필요는 없습니다. JSON 데이터를 제공 할 수있는 서버 측 언어는 동적으로 고려, ASP.NET MVC와 컨트롤러 액션 유형 jQueryDataTableParamModel의 매개 변수가 사용하는 경우

+1

(당신이 ... 그것을 이름 Phyton, 노드) 괜찮습니다 자식 클래스 (jQueryDataTableParamModel에서 확장되는 클래스)를 만들고 클라이언트에서 서버로 보내는 각 추가 필드에 대한 속성을 추가해야합니다. 이 경우 Input1과 Input2의 두 속성을 추가해야합니다. 그렇게하면 ASP.NET MVC가 자동으로 값을 바인딩합니다. –

+0

정보 주셔서 감사합니다. 슬프게도 나는 ASP.NET MVC의 :-(에 대해 많이 알고하지 않습니다하지만 난이 도움이 될 것입니다 확신합니다! – mainguy

+0

을 잘 설명. 감사 – Richie

관련 문제