使用jQuery,我使用’serialize’检索可排序列表的位置,如下所示:
var order = $('ul').sortable('serialize');
然后,变量“ order”将收到以下内容:
id[]=2&id[]=3&id[]=1&id[]=4&id[]=5
现在如何在ajax调用中使用这些数据?
我打算这样做,但是很丑陋,我不能更改参数名称’id’:
$.post('ajax.php?'+order,{action:'updateOrder'});
也许我需要反序列化,然后内嵌变量“ order”并将其分配给一个参数?
服务器端代码没有问题,但是jQuery客户端站点代码有问题。问题是,如何在脚本中放置“ order”变量?
在我给的示例中,我将其添加为查询字符串:
'ajax.php?'+order
但我想像动作参数一样将其作为参数传递。以下无效,它返回语法错误:
$.post('ajax.php?'+order,{action:'updateOrder',order});
找到了!我需要添加将key:'string'变量名称更改为“字符串”而不是“ id”的选项。
key:'string'
var order = $('#projects ul').sortable('serialize',{key:'string'}); $.post('ajax.php',order+'&action=updateOrder');