我正在使用可排序的jquery upi通过php对列表进行重新排序,我得到的id是这样的:
var ids = $('#sort1').sortable('serialize');
在 ajax 调用中update
时,它在 ajax 调用中传递data
时工作正常,如下所示:
data: ids
然后像这样进入我的 php 脚本(注意单数 id):
$getids = $_POST['id'];
所有这些都工作正常,但是我想在对象内部传递数据,因为我还想传递其他东西,但它似乎不起作用。
我试过了:
data: {
id: ids
},
然后我得到这个php错误:
Warning: Invalid argument supplied for foreach() in C:'wamp'www'sortable'sort.php on line 8
我还尝试将$getids = $_POST['id'];
更改为$getids = $_POST['ids'];
但随后我得到了 unidented 索引和无效的参数错误。
如何将对象内部的ids
作为键值对传递?
编辑:
福瑞克代码
$count = 1;
foreach ($getids as $key => $id) {
$q = "UPDATE titles SET sorting='$count', parent_id='1' WHERE id='$id'";
$r = mysqli_query($dbc, $q);
if ($r) {
echo 'done <br>';
} else {
echo 'problem <br>' . mysqli_error($dbc);
}
$count++;
}
我遇到了这个问题并遇到了这篇文章,因为它不包含任何解决问题的代码。我终于找到了一个适合我的解决方案......
在我的 Ajax 请求中,我使用以下方法将可排序的 UI 转换为数组:
var data = $(this).sortable('toArray');
然后按以下方式发送 Ajax 请求:
data: { sectiononelink: data, currentUserID: user_id },
然后因为可排序到数组函数给了我一个字符串,例如 sectionone-asectionone-bsectionone-csectionone-d 等......我只想要字符串的"sectionone-"部分后面的字母,因为我希望使用字母 a - z 在我的 html 中对列表进行排序。
在我的PHP中,我使用了一个foreach循环,其中包含:
$profileLinkOrder = "";
foreach($_POST['sectiononelink'] as $value)
{
$profileLinkOrder .= substr(strstr($value, "-"), 1);
}
然后变量$profileLinkOrder会像 abcdefg 等一样出现......取决于我在 HTML 页面上的可排序 UI 列表的方式。
这对我有用,所以我希望其他人可以使用它来解决这个问题。我在网上找不到任何其他解决方案。让我知道这是否有帮助。