Intereting Posts

PHP не собирает данные из jQuery AJAX Form Submit

У меня есть форма с кнопкой отправки:

<form action="?edit-form" method="post" class="addEdit"> <input type="submit" name="delete-image" value="Delete Image"> </form> 

Мой jQuery AJAX:

 $.ajax({ url: $('form.addEdit').attr('action'), type: $('form.addEdit').attr('method'), data: $('form.addEdit').serialize(), success: function(html) { } }); 

В моем PHP я не могу получить этот $ _POST ['delete-image'] isset (), хотя кнопка отправки, отправившая форму, называется «delete-image».

 if (isset($_POST['delete-image'])) { } 

«delete-image» должен быть установлен, так как это была кнопка отправки, которую я нажал. Почему PHP не собирает этот опубликованный varaible из этого AJAX submit?

В jQuery documenation здесь: http://api.jquery.com/serialize/
Только последовательный контроль сериализуется, см. Документацию ниже:

Примечание. Только строки «успешный контроль» сериализуются в строку. Значение кнопки отправки не сериализуется, так как форма не была отправлена ​​с помощью кнопки. Чтобы значение элемента формы было включено в сериализованную строку, элемент должен иметь атрибут имени. Значения из флажков и переключателей (входы типа «радио» или «флажок») включаются только в том случае, если они проверены. Данные из элементов выбора файлов не сериализованы.

Поэтому submit buttn не будет сериализоваться через функцию jQuery.serialize (). Работа вокруг – вы можете добавить скрытый ввод, и он будет сериализован.

ОБНОВИТЬ:
Вам нужно изменить форму submit ajax, чтобы связать нажатие кнопки. и в запросе ajax вы можете добавить значение кнопки вручную. Ниже мой код работает.

 $( "#delImage" ).click(function( event ) { event.preventDefault(); $form = $(this).parent('form'); $btnid = $(this).attr('name'); $btnval = $(this).attr('value'); $.ajax({ url: $form.attr('action'), type: $form.attr('method'), data: { "btnid" : $btnid, "btnval": $btnval, "form-data": $form.serialize() }, success: function(html) { console.log(html); } }); });