我做错了什么,这让我疯了,因为我无法弄明白。 使用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++;
}
}
?>
答案 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',否则你应该反击它..