可排序数据和更新数据库问题

时间:2012-03-18 16:54:36

标签: javascript jquery jquery-ui-sortable

我正在努力让这个可排序的代码工作,我已经让它在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'";

1 个答案:

答案 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'";