0

我做错了什么,这让我发疯,因为我无法弄清楚。使用 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); 
        }
    });
});

排序文件

<?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++;
        } 
    }
?>
4

2 回答 2

1

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

于 2013-02-14T14:22:00.767 回答
0

是否应将 $i 替换为 $position:

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

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

而且,我假设您的表格实际上并未称为“表格”,否则您可能应该反引号它..

于 2013-02-14T14:15:44.310 回答