我正在努力让这个可排序的代码工作,我已经让它在UI示例中的<li>
上工作了,但是现在我使用的是<div>
s,而不是确实有所作为,但我认为这会使事情变得复杂。
所以这是我的可排序代码,附带了某种更新ajax:
$(function() {
$( ".heriyah" ).sortable({
connectWith: ".heriyah",
handle: ".handle",
cancel: ".add",
update : function () {
var order = $('.heriyah').sortable('serialize');
$("#sortable").load("sortable.php?"+order);
},
receive: function(event, ui){
alert('RECEIVE: ' + $(ui.sender).attr('id') + '=>' + $(this).attr('id') + ' ' + (ui.item.index()+1) + ' ' + $(ui.item).text());
}
});
$( ".heriyah" ).disableSelection();
});
这是sortable.php的内容:
foreach ($_GET['sort'] as $position => $item) :
$query = "UPDATE content SET `order` = $position WHERE `id` = $item";
$result = mysql_query($query);
endforeach;
以下是我的页面设置方式:
<div id="someID" class="heriyah">
<div id="heriyah_sortable" class="sort_1">Content</div>
<div id="heriyah_sortable" class="sort_2">Content</div>
<div id="heriyah_sortable" class="sort_3">Content</div>
<div id="heriyah_sortable" class="sort_4">Content</div>
</div>
所以没有更新,我也不知道我做错了什么。
更新(已解决):
好的,所以在我的更新查询中,我的文件的路径是错误的,除此之外,更新功能本身也搞砸了。所以我现在修理它看起来像这样:
update : function (event, ui) {
var order = $(this).sortable('serialize');
$.post("admin/sortable.php?" + order);
},
其次,我对数据库的查询搞砸了。数据库需要PHP元素的引号。有时数据库并不关心,但在某些情况下,如果没有引号则会出错。在列变量周围添加斜线引号然后单引号“#”;这是一个很好的做法。围绕查询中的PHP变量。
以下是我的查询现在的样子:
$query = "UPDATE content SET `order` = '$position' WHERE `id` = '$item'";
答案 0 :(得分:0)
好的,所以在我的更新查询中,我的文件的路径是错误的,除此之外,更新功能本身也搞砸了。所以我现在修理它看起来像这样:
update : function (event, ui) {
var order = $(this).sortable('serialize');
$.post("admin/sortable.php?" + order);
},
其次,我对数据库的查询搞砸了。数据库需要PHP元素的引号。有时数据库并不关心,但在某些情况下,如果没有引号则会出错。在列变量周围添加斜线引号,然后在查询中围绕PHP变量单引号,这是一个很好的做法。
以下是我的查询现在的样子:
$query = "UPDATE content SET `order` = '$position' WHERE `id` = '$item'";