我正在尝试使用 jQuery 可排序,然后将更改保存到数据库中,但是在我更新数据库之前,我发生了一些我无法理解的奇怪事情。如果我将序列化数据记录到控制台,我会得到“列表”中的所有项目,但是如果我从 php 脚本中回显出 json 编码的数组,我只会得到一个项目——confused.com。
目前的jquery是:
$('#sortable-list').sortable({
//handle : '.handle',
update : function () {
var order = $(this).sortable('serialize');
var table = $(this).parent().attr('id');
console.log(order);
$.ajax ({
type: "POST",
url: templateDir + "/inc/changeSortOrder.php",
data: "order=" + order + "&sort=1&sort_table=" + table,
dataType: "json",
cache: false,
success: function(data)
{
console.log(data);
}
});
}
});
目前的PHP是:
if (isset($_POST['sort']) && $_POST['sort'] == 1) {
if ($_POST['sort_table'] == 'nationalities') {
$output = array();
$list = parse_str($_POST['order'], $output);
echo json_encode($output);
}
控制台日志给了我:
nationality[]=17&nationality[]=1&nationality[]=47&nationality[]=23&nationality[]=3&nationality[]=4&nationality[]=5&nationality[]=6&nationality[]=7&nationality[]=8&nationality[]=12&nationality[]=10&nationality[]=11&nationality[]=13&nationality[]=14&nationality[]=15&nationality[]=16&nationality[]=18&nationality[]=19&nationality[]=20&nationality[]=21&nationality[]=22&nationality[]=24&nationality[]=25&nationality[]=26&nationality[]=27 etc
echo json 给了我:
Object {nationality: Array[1]}
nationality: Array[1]
0: "17"
length: 1
所以由于某种原因,完整的数组没有被传递给 PHP 文件,我不知道为什么。