【发布时间】:2013-12-15 22:27:58
【问题描述】:
我的站点中有一个可排序的列表,它使用 ajax 请求将列表项的顺序保存到 php 页面。 问题是当 LI(由数据库生成)的 id 超过 999 左右时,由于我发送到 PHP 页面的数组变得太长,它开始出错。
有更好的方法吗?
目前我的 Jquery/ajax 是:
$(function() {
$('#sortable').sortable({
update: function(event, ui) {
var order = [];
$('#sortable li').each( function(e) {
order[ $(this).attr('id') ] = $(this).index() + 1;
});
var request = $.ajax({
url: "ajax/save_order.php",
type: "POST",
data: {positions : order},
dataType: "json"
});
}
});
});
我的 PHP 页面是:
$positions = $_POST['positions'];
foreach ($positions as $id_section => $order)
{
$sql = sprintf("
UPDATE section_order
SET id_order = %d
WHERE id_section = %d
",
$order,
$id_section
);
$result = mysql_query($sql);
}
我一直在尝试如何将数据从可排序的数据中获取到 jquery 中的多维数组中,但目前正在绘制空白。
【问题讨论】:
-
我对此感到困惑..“超过 999 左右开始出错”是什么错误?
-
您可以将数据作为 CSV 列表发送,我假设您的
ids都是数字,因此它们应该按照放置顺序保存在数组中。这可能会减少发送到服务器的数据量,但您必须为此调整您的 php -
@superphonic 没有错误,但控制台似乎表明计算数组中的所有行需要很长时间才能超时。
-
在下面查看我的答案...
标签: php jquery mysql jquery-ui jquery-ui-sortable