使用 jQuery 可排序插件中的 PHP 更新数据库中的排序顺序


Update the sort order in a database using PHP from the jQuery sortable plugin

我正在使用jQuery插件对产品订单进行排序。它在客户端站点上运行良好,但我也想更新数据库中的顺序。这是我的尝试:HTML:

<ul id="item_list" >
<li id="item_1">Item One</li>
<li id="item_2">Item Two</li>
<li id="item_3">Item Three</li>
<li id="item_4">Item Four</li>
</ul>

j查询:

$("#item_list").sortable({stop:function(i) {
  $.ajax({
    type: "GET",
    url: "server_items_reorder.php",
    data: $("#item_list").sortable("serialize")
  });
  foreach($_GET['item'] as $key=>$value) {
    mysql_query("UPDATE my_items" SET position = '" . $key . "' WHERE id ='" .         $value . "'");

但是我这样做,它会抛出一个错误:显示无效的参数foreach。怎么了?

看起来你的代码可能基于Wil Linssen的帖子。

无论是否为,"foreach 的参数无效"意味着$_GET['item']为空,或者格式不正确。 尝试在server_items_reorder.php中打印它:

print "$_GET[item]";

mm..我认为查询字符串变量的名称是item_list

尝试重命名

$('#item_list').sortable('serialize',{key:'item'})

您确定 #item_list 包含 ids 值吗?