【发布时间】: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)。他们都没有提到工作