jquery ui可排序插件不保存到数据库

时间:2013-01-10 16:50:26

标签: php ajax jquery-ui jquery

好的,这个应该相当简单,但我发现它很难。我在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());
  }

你可以看到我甚至试图保持与示例相同的名称,但我无法继续。

1 个答案:

答案 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是空的这个事实至少可以让你把问题集中在手头的问题上(即这无关紧要)无论是可排序的还是数据库)。