我有一个jQuery可排序列表。最终我想要的是一个简单的php列表ID列表。我试图获取数组中的id和位置并将其添加到数据库中。我希望用户能够根据需要更改列表的顺序,当他们对订单感到满意时,单击按钮进行提交。
我见过很多可排序列表的例子,每次切换项目位置时都会更新,但这不是我想要的。
这是简化的。 id将使用php动态生成。
<body>
<form>
<ul id="sortable-1">
<li id="order1">Item 1</li>
<li id="order2">Item 2</li>
<li id="order3">Item 3</li>
<li id="order4">Item 4</li>
<li id="order5">Item 5</li>
</ul>
<input type="button" value="Submit" onclick="go">
</form>
</body>
jQuery将使列表可排序,并且每次订单更改时也会发布,而不是我想要的。我需要一个名为go with ajax的独立函数。另外,.sortable('toArray').toString()
是我想要的(&#34;序列化&#34;)?它似乎是一个简单的id值数组。
$(function(){
$("#sortable-1").sortable({
update: function(event, ui){
var operationOrder = $(this).sortable('toArray').toString();
$ajax({
data: operationOrder,
type: 'POST',
url: 'order.php'
});
}
});
});
php,它将包含一组id值:
$order = array();
$string = $_POST['data'];
$order = explode(",", $string);
感谢您的帮助。对于有经验的程序员来说,这可能过于简单,但我已经做了好几天......
答案 0 :(得分:0)
要使用$_POST['data']
接收数据数组,您需要将数组作为键data
的值发送。另请注意,您不必对阵列进行字符串化。 jQuery将为您正确编码。
$ajax({
data:{data: operationOrder},// don't need to stringify this array
type: 'POST',
url: 'order.php'
});
现在要验证,了解如何在浏览器控制台网络选项卡中检查ajax请求,您将看到确切的发送内容。浏览器控制台(F12)总是在调试ajax时启动的地方