【问题标题】:Jquery Sortable, reorder list then write to mySQL databaseJquery Sortable,重新排序列表然后写入mySQL数据库
【发布时间】:2021-09-21 23:50:57
【问题描述】:

我正在尝试编写一个列表,它允许用户对其重新排序并将重新排序的列表保存到 mySQL。

jquery:

 <script>
     $(function() {
         $('#sortable').sortable({
          axis: 'y',
          update: function (event, ui) {
           var data = $(this).sortable('serialize');
            $.ajax({
              data: data,
              type: 'POST',
              //url: 'index.php' sending data to the same page
            });
           }
        });
        $( "#sortable" ).disableSelection();
     });
    </script>
  

PHP:

foreach ($_POST['data'] as $value) {
// Execute statement:
// UPDATE [Table] SET [Position] = $i WHERE [EntityId] = $value
//$i++;
}
?>

我从 PHP_error_reporting 得到的错误:未定义的索引:数据,为 foreach() 提供的参数无效

【问题讨论】:

  • 请在 Index.php 页面中向我们提供完整代码,您从哪里获得 $task 或者您是如何声明它的,警告基本上是在告诉您 $task 不是什么东西您可以在 foreach() 循环中使用它
  • 尝试在循环之前添加var_dump($_POST);,看看你收到了什么
  • @Slava Rozhnev 我得到 array(0){}。 PHP 没有以某种方式从 ajax POST 接收对象。我在控制台上检查了网络活动,它说对象数组由 ajax 成功发送。标题选项卡:POST 状态 200 请求:item[]:[0=>"2", 1=>"1"] 这是我在使用 POST PHP 时所期望的值,但是当我使用 PHP 时,该数组没有出现在 PHP 中使用 $_POST['data'] var_dump($_POST)、print_r($_POST)。他们都没有提到工作

标签: php jquery mysql ajax


【解决方案1】:

试试$data = $_POST['data'] or $_REQUEST['data']

您可以使用 json_decode() 解码 $data 并访问您的属性。

点赞json_decode($data);

【讨论】:

  • 这就是问题出现的地方。错误报告一直说未定义的变量我一直在尝试使用 $_REQUEST $_POST if(isset( $_REQUEST[] / $_POST[] ) )。他们都没有做应该做的事。
  • 首先,您必须修复发送数据的方式。确保您的页面收到 POST 请求,然后尝试您自己的逻辑。你真的应该定义'url:',在这种情况下,将数据发送到同一页面并不是一个相关的借口。
猜你喜欢
  • 2013-03-16
  • 1970-01-01
  • 2016-01-06
  • 2018-02-05
  • 2018-09-27
  • 2020-10-29
  • 1970-01-01
  • 1970-01-01
  • 2012-05-20
相关资源
最近更新 更多