Jquery Datatables — не может получить доступ к пользовательским параметрам на стороне сервера, fnServerParams, метод POST с использованием переполнения стека

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’] — стандартно доступен .. пользовательский нет.

0

Решение

Для тех, кто сталкивается с этой проблемой. Вы можете получить доступ к переменным, убедившись, что вы используете таблицы данных 1.10 или новее, а затем в PHP для приведенного выше примера, используя $ _GET [‘more_data’].

Атрибут ‘name’ в таблицах данных указывает фактическое имя переменной, отправляемой на сторону сервера.

Вы не отправляете что-то с именем и значением more_data. Выше вы отправляете что-то с именем «more_data» со значением «character». Каждая новая переменная, которую вы хотите отправить, требует другого массива со свойствами ‘name’ и ‘value’.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]