Я посылаю некоторые сериализованные данные в PHP скрипт через AJAX:Перебора сериализованной сортировки таблицы
HTML:
<table class="mytable">
<tbody>
<tr id="item_01">
<td>content</td>
</tr>
<tr id="item_02">
<td>content</td>
</tr>
<tr id="item_03">
<td>content</td>
</tr>
<tr id="item_04">
<td>content</td>
</tr>
<tr id="item_05">
<td>content</td>
</tr>
</tbody>
</table>
JS:
$('.mytable tbody').sortable({
update: function() {
items = $(this).sortable('serialize');
$.ajax({
url: 'ajax.php',
type: 'post',
data: { action: 'foo', items }
cache: false,
error: function() {
console.log('Error');
}
});
}
});
PHP:
$action = $_POST['action'];
if ($action == 'foo') {
$items = $_POST['items'];
for ($i = 0; $i < count($items); $i++) {
.....
}
}
У меня создалось впечатление, через $_POST['items']
вар без какого-либо преобразования, но я вместо того, чтобы получать сериализированную данные:
item[]=val_1&item[]=val_2&item[]=val_3& ... &item[]=val_n
Как я могу петлю через это?
Заранее спасибо
Пробовал это, но '$ _POST [«вещи»]' вар все еще содержит сериализованные данные, а не массив PHP. Возможно, факт, что я добавляю параметр 'action' в параметр' data' в запросе AJAX, меняет все. – user1991185
Doh - вы правы. Serialize возвращает строку, поэтому вы не сможете использовать ее непосредственно в качестве объекта для публикации. Я обновил свой ответ. – MacPrawn