1

わかりました、これはかなり単純なはずですが、私はそれを非常に難しいと思っています。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>

そして、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 に答える