通过ajax发送jQuery可排序数据

时间:2014-05-26 15:19:49

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

我正在使用jQuery Sortable和twitter bootstrap。我有表行,我试图排序。拖放工作正常,但我试图通过ajax发送新的排序顺序,而不是拾取/发送排序顺序,当我尝试alertdata它似乎是空的。

enter image description here

这是我的PHP代码,它使用循环从MySQL中提取记录

<table class="table table-striped table-bordered ">
    <thead>
    <tr>
        <th> Slide Title</th>
        <th> Action</th>
    </tr>
    </thead>
    <tbody>
    <?php
    while ($row = $query->fetch(PDO::FETCH_ASSOC)) {
        ?>

        <tr id="<?php echo $row['id']; ?>">
            <td>
                <?php echo $row['title']; ?>

            </td>
            <td>
                <div class="btn-group pull-right">
                    <button data-toggle="dropdown" class="btn btn-small btn-info dropdown-toggle">
                        Action<span
                            class="caret"></span></button>
                    <ul class="dropdown-menu">
                        <li><a href="slide-edit.php?id=<?php echo base64_encode($row['id']) ?>">Edit</a>
                        </li>
                        <li>
                            <a href="slides.php?delete=<?php echo base64_encode($row['id']) ?>">Delete</a>
                        </li>
                    </ul>
                </div>
            </td>
        </tr>

    <?php
    }

    ?>

    </tbody>
</table>

这是java脚本,它正在进行排序,然后将数据发送到名为slides.php的文件

$(document).ready(function(){

    $(function() {
        $('table').sortable({
            items: 'tr',
            opacity: 0.6,
            axis: 'y',
            stop: function (event, ui) {
                var data = $(this).sortable('serialize');
                alert(data);
                $.ajax({
                 data: data,
                 type: 'POST',
                 url: 'slides.php'
                 });
            }
        });
    });

});

我觉得我的变量data var data = $(this).sortable('serialize');无效,如果我发送静态变量,那么我可以在$_POST

中看到

我真的非常感谢你们的任何帮助。

1 个答案:

答案 0 :(得分:0)

我最后跟进this link上提到的概念来执行我的任务,由于某种原因,当前的解决方案无法与<table>一起使用,所以我只是使用{重新编写了html部分{1}}它有效。

我希望这可以帮助那些有同样问题的人。