Я пытаюсь собрать рабочую демонстрационную версию (включая mysql) формы, которая использует jquery для сериализации данных формы и php для извлечения данных, чтобы их можно было передать в mysql-запрос.Не удается получить форму обновления Ajax для работы с unserialize
Форма, похоже, корректно размещает данные, но я не уверен, как настроить скрипт обработки, который видит $ _POST для несериализации данных, чтобы передать его в mysql. Вы можете увидеть демо на http://www.dottedi.biz/demo/code/ajax/serialize.
Я попытался с помощью:
$data=unserialize($_POST['data']);
для десериализируются данных, но он возвращается пустым. Простой print_r ($ _POST); возвращает данные массива из формы. Вы можете видеть, что если вы протестируете демоверсию. Предложения, пожалуйста?
Добавлена информация - содержимое файла script.js:
$(document).ready(function() {
$('form').submit(function(evt) {
evt.preventDefault();
$.each(this, function() {
var input = $(this);
var value = input.val();
var column = input.attr('name');
var form = input.parents('form');
var linked_col = form.find('#associated').attr('name');
var linked_val = form.find('#associated').val();
// var serializedData = $(this).serialize();
$("#Status").html("");
$.ajax({
url: "update.php",
data: {
val: value,
col: column,
id: linked_col,
id_val: linked_val
},
type: "POST",
success: function(html) {
$("#Status").html(html);
}
});
});
});
});
9/22 - укороченные script.js
$(document).ready(function() {
$('form').submit(function(evt) {
evt.preventDefault();
$.each(this, function() {
$("#Result").html("");
$.ajax({
url: "update.php",
data: $('form').serialize(), // works to post data
type: "POST",
success: function(html) {
$("#Result").html(html);
}
});
});
});
});
комментарий - я тестировал, и кажется, что одни и те же данные публикуются с использованием сериализации как указано выше, а также для создания переменной типа var serializedData = $ (this) .serialize() и публикации переменной, но это короче.
PHP 'десериализации()' не реверсе javascript 'serialize()' Данные в '$ _POST' обрабатывается так же, как и из простого набора входов формы. – RiggsFolly
Хранение массива в mysql вам необходимо сериализовать. Но, передавая его в javascript, вы должны несериализовать и разбирать его в JSON. –