JQuery可排序PHP到数据库

时间:2015-02-04 03:53:28

标签: php jquery jquery-ui jquery-ui-sortable

所以我有2个盒子。在左侧,我有一个从数据库中拉出的项目列表,我可以拖放到右侧。这非常有效。我不能为我的生活找到如何让它发布右侧列表的数据,我想我已经尝试了谷歌本周提供的每一个例子。

当我做print_r($ _ POST)时;在这个提交的页面上,我得到的Array()中没有任何内容。它似乎没有抓住ID并将它们序列化。

有没有人有这方面的经验,看到我错过了什么?

  <script>
  $(function() {
    $( "ul.droptrue" ).sortable({
        connectWith: "ul"
    });

    $( "ul.dropfalse" ).sortable({
      connectWith: "ul",
      dropOnEmpty: true
    });

    $( "#sortable1, #sortable2" ).disableSelection();
  });

      $( "#sortable2" ).sortable({
    axis: 'y',
    handle : '.handle', 
    update: function (event, ui) {
        var data = $(this).sortable('serialize');
        console.log(data);

        // POST to server using $.post or $.ajax
        $.ajax({
            data: data,
            type: 'POST',
            url: 'setlists-edit-process.php'
        });
    }
});

  </script>

<ul id="sortable1" class="droptrue">
<?php
$_GET['setlist_id'];
$sql = "SELECT material_id, material_name FROM material WHERE user_id=$session_id";
$result = mysqli_query($conn, $sql);

if (!$result) {
    printf("Error: %s\n", mysqli_error($conn));
    exit();
}

while($row = mysqli_fetch_array($result))
{
echo "<li id=" . $row['material_id'] . ">" . $row['material_id'] . " | " . $row['material_name'] . "</li>";
}

?>
</ul>

<ul id="sortable2" class="dropfalse">

</ul>

1 个答案:

答案 0 :(得分:0)

替换它:

while($row = mysqli_fetch_array($result))
{
echo "<li id=" . $row['material_id'] . ">" . $row['material_id'] . " | " . $row['material_name'] . "</li>";
}

使用:

while($row = mysqli_fetch_array($result))
{
echo '<li id="material_' . $row['material_id'] . '">' . $row['material_id'] . " | " . $row['material_name'] . "</li>";
}

Sortable期望ID的格式为setname_number

此外,您的代码以id=abc格式输出(无引号),而应该是id="abc"周围的引号。