1

好的,这应该相当简单,但我发现它很难。我在http://www.xmech.net/programming/jquery-ui-sortable-tutorial/上找到了一个很好的可排序示例,它使用 jquery ui 对列表进行排序并将其保存到数据库中。

我的允许您拖放但不保存到数据库。这是我的 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>

和我的名为 sortable.php 的 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());
  }

如您所见,我什至尝试保持与示例相同的名称,但我无法做到。

4

1 回答 1

0

在查看您的 jQuery 时,您似乎正在发布 JSON。我猜这$_POST没有被填充,因为它只会自动填充以表单编码格式接收的帖子。您需要读取 PHP 原始输入以获取 JSON 字符串,然后您需要将该 JSON 字符串解码为一个对象。那将是这样的:

$json = file_get_content('php://input');
$object = json_decode($json);
$type = $object->type;
$pages = $object->pages;

在发布问题之前,您应该始终至少进行一些基本的调试尝试,因为我想 $_POST 为空的事实至少可以让您将问题集中在手头的问题上(即这与任何可排序的问题都无关或数据库)。

于 2013-01-10T17:08:02.967 回答