好的,这个应该相当简单,但我发现它很难。我在http://www.xmech.net/programming/jquery-ui-sortable-tutorial/上找到了一个很好的可排序示例,它使用jquery ui对列表进行排序并将其保存到数据库中。
Mine允许您拖放但不保存到数据库。这是我的jquery函数
<script type="text/javascript">
$(document).ready(function(){
$("#menu-pages").sortable({
update: function(event, ui) {
$.post("sortable.php", {type: "orderPages", pages: $('#menu- pages').sortable('serialize') });
}
});
});
</script>
和我的php / html
<ul class="menu" id="menu-pages">
<?php
mysql_select_db($database_dbconnet, $dbconnet);
$resultq = mysql_query("SELECT * FROM `section` ORDER BY `sectorder` ASC", $dbconnet) or die(mysql_error());
while($row = mysql_fetch_array($resultq)){
printf('<li id="page_%s">%s</li>', $row['idsect'], $row['sectname']);
}
?>
</ul>
我的php文件名为sortable.php
require('../../../Connections/dbconnet.php');
parse_str($_POST['pages'], $pageOrder);
foreach ($pageOrder['pages'] as $key => $value) {
mysql_select_db($database_dbconnet, $dbconnet);
mysql_query("UPDATE `section` SET `sectorder` = '$key' WHERE `idsect` = '$value'", $dbconnet) or die(mysql_error());
}
你可以看到我甚至试图保持与示例相同的名称,但我无法继续。
答案 0 :(得分:0)
在查看你的jQuery时,似乎你发布了JSON。我猜测$_POST
没有被填充,因为它只会自动填充以表格编码格式收到的帖子。您需要读取PHP原始输入以获取JSON字符串,然后您需要将该JSON字符串解码为对象。这将是这样的:
$json = file_get_content('php://input');
$object = json_decode($json);
$type = $object->type;
$pages = $object->pages;
在发布问题之前,你应该总是至少做一些基本的调试尝试,因为我认为$ _POST是空的这个事实至少可以让你把问题集中在手头的问题上(即这无关紧要)无论是可排序的还是数据库)。