jQuery Post没有发布多维数组数据

时间:2016-08-29 22:16:08

标签: javascript jquery arrays

我有可变数量的标签,上面有自定义表单我试图发布数据。

我的解决方案是为每个选项卡创建一个包含另一个数组的数组。然后将该多维数组发布到我的控制器。

$("#savetabs").click(function()
{
    $("body").addClass("loading");
    var $alltabdata = [];
    $("#customtabs-holder").children().each(function() {
        $tablename = $(this).attr('id');
        $thistabdata = [];

        $inputs = $(this).find("input");
        $.each($inputs, function( index, value ) {
            $thistabdata[$(this).attr("name")] = $(this).val();
        });

        $selects = $(this).find("select");
        $.each($selects, function( index, value ) {
            $thistabdata[$(this).attr("name")] = $(this).val();
        });
        $alltabdata[$tablename] = $thistabdata;
    });
    console.log($alltabdata);

    posting = PostTabData($client_id, $alltabdata);

    posting.done(function( data ) {
        $("body").removeClass("loading");
        console.log(data);
        alert(data);
    });

    posting.fail(function() {
        $("body").removeClass("loading");
        alert( "Failed to post tab info" );
    });
});

function PostTabData($client_id, $tabdata) {
    console.log($tabdata);
    debugger;
    return $.post("/CustomTables/Contents/Save",
    {
        client_id: $client_id,
        alltabdata: $tabdata,
    });
}

post之前的console.log显示正确的信息,但是标签数据不会在我的控制器中结束,当我检查网络选项下的chromes开发人员工具时,它会显示发送的数据仅包含client_id字段

1 个答案:

答案 0 :(得分:1)

将变量更改为对象:

[]{}

在javascript中只存在带数字键的数组。 javascript中不存在关联数组。

检查此代码段以填补差异:

//array
var arr=[];
arr["name"]="Example name";

console.log("Here array log:");
console.log(arr);

//object
var obj={};
obj["name"]="Example name";

console.log("Here object log:");
console.log(obj);