Проблема с сериализованными данными (сортировка jQuery & gt; PHP)

я использую .sortable('serialize') в пользовательском интерфейсе jQuery для передачи обновленных позиций сортируемых элементов в базу данных. Что я пытаюсь понять, так это то, как я манипулирую этими сериализованными данными, чтобы обновить позиции в базе данных. С помощью foreach не похоже на работу.

jQuery:
-------
$('#sort').sortable({
update: function(event, ui) {
var data = sortBlock.sortable('serialize');
updatePos(data);
}
});

function updatePos(data) {
...
request = $.ajax({
url:        url,
method:     'post',
data:       data
});
...
}

PHP:
----
$entry = $_POST['data'];

$dbc = mysqli_connect(<connects>);

$i = 0;
foreach ($entry as $value) {
$insert = 'UPDATE <table> SET <column> = '.$i;
$i++;
}

Serialised data:
---------------
product[]=0&product[]=1...

1

Решение

В своем коде PHP вы устанавливаете $entry как $_POST? Хорошая функция отладки в PHP для этого print_r, foreach должен работать как положено:

foreach($_POST['product'] as $value){
$insert = 'UPDATE <table> SET <column> = '.$i;
$i++;
}

Хорошая функция отладки в PHP для этого print_r, Попробуйте добавить print_r($_POST) в ваш код PHP, чтобы увидеть формат POSTEd данные, которые получил PHP.

Вы можете использовать PHP parse_str метод для анализа этой строки в составляющие ее переменные. Например., parse_str($_POST,$output); создаст массив в $output['product'], Или вы можете попробовать использовать .sortable (‘toArray’); вместо этого, чтобы правильно отформатировать данные на веб-интерфейсе

0

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

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

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