http://legacy.datatables.net/usage/server-side <— справочная страница
Всем привет,
Я с большим успехом писал некоторые серверные сценарии с использованием баз данных. Прямо сейчас я пытаюсь заставить метод fnServerParams что-то отправить в PHP.
$(document).ready(function() {
var my_inventory = $('#my_inventory').dataTable({
"iDisplayLength": 10,
"bprocessing": true,
"bServerSide": true,
"sAjaxSource": "scripts/my_inventory.php",
"sServerMethod": "POST",
"fnServerParams": function(aoData) {
var character = $('#my_inventory_character').val();
console.log(character);
aoData.push({
"name": "more_data",
"character": character
});
}
})
);
Моя символьная переменная работает нормально. Скрипт прекрасно загружает данные и свойства клиента. Не видит пользовательских свойств.
Обычно я обращаюсь к свойствам данных отправленного клиента из приведенного ниже списка через PHP — используя $ _POST [‘variablenamehere’].
«dl.dropboxusercontent.com/u/44445906/capture/variables.PNG» (не могу связать более двух раз)
Однако при использовании описанного выше метода я не могу получить доступ к $ _POST [‘символ’] или $ _POST [‘имя’]. Infact, empty / null.
https://dl.dropboxusercontent.com/u/44445906/capture/sever.PNG
TLDR:
Попытка получить доступ к пользовательским параметрам, используя POST и PHP. Может показаться, что для доступа к стандартным переменным используется только этот метод. Как вы решили это?
Без использования POST то же самое происходит с использованием $ _GET [‘variablename’] — стандартно доступен .. пользовательский нет.
Для тех, кто сталкивается с этой проблемой. Вы можете получить доступ к переменным, убедившись, что вы используете таблицы данных 1.10 или новее, а затем в PHP для приведенного выше примера, используя $ _GET [‘more_data’].
Атрибут ‘name’ в таблицах данных указывает фактическое имя переменной, отправляемой на сторону сервера.
Вы не отправляете что-то с именем и значением more_data. Выше вы отправляете что-то с именем «more_data» со значением «character». Каждая новая переменная, которую вы хотите отправить, требует другого массива со свойствами ‘name’ и ‘value’.
Других решений пока нет …