fnServerData
является внутренней функцией в dataTables, которая может быть написана с помощью собственного обработчика ajax. В этом случае с удобной функцией jQuery Read more here
Параметры определены в ядре dataTables и требуются в этом конкретном порядке.
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({
(Получит значения двух полей ввода имени data1 и data2 с помощью JQuery из формы и включить их в POST как Input1 и Input2)
Если вы хотите знать, что отправляется, вы можете посмотреть консоль POST Data with Firebugs или изменить тип на GET
. Затем вы увидите переданные параметры в адресной строке (обратите внимание, что это может быть очень длинная строка, которая может быть отключена).
fnCallback
также является встроенной функцией ядра, которую можно перезаписать, но в данном случае это не так. Вы должны предоставить свою собственную функцию, если вы захотите выполнить некоторую постобработку в JS после получения данных.
Относительно второй части вашего вопроса: Конечно, вам не нужно использовать PHP или JSP. Любой серверный язык, который может обслуживать данные JSON динамически, хорош (Phyton, Node, вы его называете ...)
Если вы используете ASP.NET MVC, а в вашем контроллере есть параметр типа jQueryDataTableParamModel, учтите что вам нужно создать дочерний класс (класс, который простирается от jQueryDataTableParamModel) и добавить свойство для каждого дополнительного поля, которое вы отправляете от клиента на сервер. В этом случае вы должны добавить два свойства: Input1 и Input2. Таким образом, ASP.NET MVC автоматически свяжет значения. –
Спасибо за информацию. К сожалению, я не очень много знаю об ASP.NET MVC :-(Но я уверен, что это полезно! – mainguy
отличное объяснение. Спасибо – Richie