ui sortable multi toArray方法永远不会通过$ .post发送

时间:2013-03-31 05:28:19

标签: jquery

我正在使用http://jqueryui.com/sortable/ 看到这段代码

var tmp_build_form = new Array();
var groups = $('#form_section').sortable('toArray');
var ordering = '';

if ( groups )
{
    for ( var i in groups )
    {
        if ( typeof(groups[i]) != 'function' )
        {
            ordering += groups[i]+',';

            if ( groups[i].indexOf('group') == 0 )
            {
                var fields = $('#form_section div#'+groups[i]+' div.group_fields_container').sortable('toArray');

                tmp_build_form[groups[i]] = Array();
                tmp_build_form[groups[i]] = fields;
            }
            else
            {
                tmp_build_form[groups[i]] = true;
            }
        }
    }

    tmp_build_form['ordering'] = ordering;
}

我正在尝试发送 tmp_build_form 通过帖子

$.post(save_url,{'data' : tmp_build_form}, function(data) {
    alert(data);
});  

它发送空数组,但是当make console.log时,它会给我数组 我该怎么办?

这是tmp_build_form的控制台结果 http://img41.imageshack.us/img41/1240/30252807.jpg

2 个答案:

答案 0 :(得分:1)

试试这个......

var myData = $('#form_section').sortable('serialize');


$.post(save_url,{'data' : myData}, function(data) {
    alert(data);
}); 

答案 1 :(得分:1)

是的,这会给你一个数组输出,因为你已经传递了一个数组,所以你必须这样做:

$.post(save_url,{'data' : tmp_build_form}, function(data) {
    alert(data.data); // <-----here '.data' is the passed on which is in array
});

但我建议您使用console.log(data.data)