jQuery UI可排序和更新mysql数据库

时间:2013-02-14 14:06:07

标签: php javascript jquery mysql

我做错了什么,这让我疯了,因为我无法弄明白。 使用jQuery ui sortable来排序我页面上的div。排序部分有点工作,但不会更新数据库。

我唯一能想到的是页面内部的清晰,但是如果我把它放在div上它就不会那么流畅。

PHP

<div id="page">
    <div id="listItem_'.$id.'" class="a bunch of random classes">
        <div class="handle"></div>
    </div>
    <div id="listItem_'.$id.'" class="this one has some other classes">
        <div class="handle"></div>
    </div>
    <div class="clear"></div>
    <div id="listItem_'.$id.'" class="a bunch of some other">
        <div class="handle"></div>
    </div>
</div>

的Javascript

$(document).ready(function(){
    $("#page").sortable({ 
      handle : '.handle', 
      update : function () { 
        var order = $('#page').sortable('serialize');
            $(document).load("sort.php?"+order); 
        }
    });
});

sort.php

<?php
    session_start();
    require('connect.php');

    if($_SERVER['REQUEST_METHOD'] == 'GET' && isset($_SESSION['USERNAME'])){
        $i=1;
        foreach ($_GET['listItem'] as $position => $item){
            $sql = "UPDATE table SET position = ".$i." WHERE id = ".$item;
            $res = mysql_query($sql);
            $i++;
        } 
    }
?>

2 个答案:

答案 0 :(得分:1)

通过在PHP脚本中放置var_dump('got here');(或其中一个变量)来开始调试。在Firefox中使用Firebug中的控制台(这是一个附加组件)来查看输出。一步一步,直到找到失败的地方。

答案 1 :(得分:0)

应该用$ position替换$ i:

$sql = "UPDATE table SET position = ".$i." WHERE id = ".$item;
$sql = "UPDATE table SET position = ".$position." WHERE id = ".$item;

在任何情况下......如果它没有更新数据库,大概是你得到一个错误?

并且,我认为你的表实际上并没有被称为'table',否则你应该反击它..