Javascript johnny sortable:如何使用sort.sortable(“序列化”);

Javascript johnny sortable:如何使用sort.sortable(“序列化”);,javascript,jquery,twitter-bootstrap,jquery-ui-sortable,Javascript,Jquery,Twitter Bootstrap,Jquery Ui Sortable,我使用: 使用这个插件,您可以更改列表的顺序或表行的顺序(这就是我的情况)。例如,使用鼠标将第四行拖动到第二个位置。宽度插件方法sort.sortable(“序列化”)您可以访问新订单 但是如何使用sort.sortable(“序列化”) 您可以在这里找到一个示例: 我想将表格行的新顺序发送到myurl.php 如何使用可排序(“序列化”)通过$发送新订单。将发送到php脚本 HTML: 如果使用该插件对表行进行了预排序,则可以迭代这些行并将它们的id添加到数组中 onDrop: functio

我使用:

使用这个插件,您可以更改列表的顺序或表行的顺序(这就是我的情况)。例如,使用鼠标将第四行拖动到第二个位置。宽度插件方法sort.sortable(“序列化”)您可以访问新订单

但是如何使用sort.sortable(“序列化”)

您可以在这里找到一个示例: 我想将表格行的新顺序发送到myurl.php

如何使用可排序(“序列化”)通过$发送新订单。将发送到php脚本

HTML:


如果使用该插件对表行进行了预排序,则可以迭代这些行并将它们的id添加到数组中

onDrop: function ($item, container, _super) {
    var myObject = sort.sortable("serialize");
    var sorted = [];

    $('tr').each(function () {
        sorted.push($(this).data('id'));
    });

    $.post('myurl.php', {blah: sorted}, function(){});
});

我还将
blah
用大括号括起来,表示它是一个对象。否则您可能会遇到语法错误。

要通过$发送新订单。只需执行以下操作:

var dataToSend = sort.sortable("serialize").get();
$.post("ajax-sort.php", {test:dataToSend}, function(data){});
在ajax-sort.php上,您会收到如下消息:

[test] => Array
        (
            [0] => Array
                (
                    [children] => Array
                        (
                            [0] => Array
                                ([id] => 39)

                            [1] => Array
                                ([id] => 37)

                            [2] => Array
                                (
                                    [subContainer] => false
                                    [id] => 38
                                )

                            ... snip ...
                        )
                )
        )
)
如果要更改此数组的结构,请重写插件中的serialize()方法


您可以在这里找到一个自定义serialize()方法的示例:

我创建了一个脚本,可以将输出排序并转换为json格式:

function start_sorting(classvariable){
var output=[];
var parent="";
var selector=$("."+classvariable+" li");
selector.each(function(key,value){
var id=selector.eq(key).attr('id');
var index=key;
        if(selector.eq(key).parent().parent().parent().find(">li").length==0){
        parent='0';
        }else{
        parent=selector.eq(key).parent().parent().parent().find(">li").attr('id');
        }
output.push({id:id,index:index,parent:parent});
});
console.log( JSON.stringify(output));
}
[test] => Array
        (
            [0] => Array
                (
                    [children] => Array
                        (
                            [0] => Array
                                ([id] => 39)

                            [1] => Array
                                ([id] => 37)

                            [2] => Array
                                (
                                    [subContainer] => false
                                    [id] => 38
                                )

                            ... snip ...
                        )
                )
        )
)
function start_sorting(classvariable){
var output=[];
var parent="";
var selector=$("."+classvariable+" li");
selector.each(function(key,value){
var id=selector.eq(key).attr('id');
var index=key;
        if(selector.eq(key).parent().parent().parent().find(">li").length==0){
        parent='0';
        }else{
        parent=selector.eq(key).parent().parent().parent().find(">li").attr('id');
        }
output.push({id:id,index:index,parent:parent});
});
console.log( JSON.stringify(output));
}