я использую .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...
В своем коде 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, чтобы увидеть формат POST
Ed данные, которые получил PHP.
Вы можете использовать PHP parse_str
метод для анализа этой строки в составляющие ее переменные. Например., parse_str($_POST,$output);
создаст массив в $output['product']
, Или вы можете попробовать использовать .sortable (‘toArray’); вместо этого, чтобы правильно отформатировать данные на веб-интерфейсе
Других решений пока нет …