【问题标题】:Update the sort order in a database using PHP from the jQuery sortable plugin使用 jQuery 可排序插件中的 PHP 更新数据库中的排序顺序
【发布时间】:2012-05-17 06:34:45
【问题描述】:

我正在使用 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>

jQuery:

$("#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 显示无效的争论。怎么了?

【问题讨论】:

    标签: php jquery jquery-ui-sortable


    【解决方案1】:

    看起来您的代码可能基于Wil Linssen's post

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

    print "$_GET[item]";
    

    【讨论】:

      【解决方案2】:

      mm..我认为querystring var的名称是item_list

      重命名试试这个

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

      您确定 #item_list 包含 ids 值吗??

      【讨论】:

      • yes...#item_list 包含 ids 值,我正在尝试更新数据库,但它没有这样做...这是我的 html 代码
      • data1
    • 好的,在 ajax 调用之前检查 alert($("#item_list").sortable("serialize")) 是否显示为 "item[]=..&item[]=.. " 等等,问题出在 server_items_reorder.php 上。在 server_items_reorder.php 中打印 $_GET 的值 foreach($_GET as $k => $v) echo "$k -> $v
      ";并检查 $_GET['item'] 是否存在,可能无法到达 server_items_reorder.php
    • 猜你喜欢
      相关资源
      最近更新 更多
      热门标签