AJAX中的POST数组


POST array in AJAX

我的问题是

jQuery.ajax({
    type: "POST",
    url: "../ajax/si-notificar_investigacion.php",
    data: {
        idincidente: $("#idincidente").val(),
        arrControlls : arrControlls
    },
    dataType: 'json',
    async: false,
    success: function(datos) {
        alert(datos);
    }
});

这是我的ajax

现在我使用arrControlls变量作为数组,它来自另一个函数

现在如果arrControlls

[0] = "test1";
[1] = "test1";
[2] = "test1";

那么我可以在动作页面中将这个变量作为数组

但是如果我使用像这个这样的值

['sid_1'] = "test1";
['sid_2'] = "test1";
['sid_3'] = "test1";

那么我在操作页中没有变量为什么?

添加此行以获得更多详细信息

我正在使用jquery函数来获取数据

function getAllControllValue()
{
    var  arrControlls = new Array();
    $("#container-div input").each(function(){
        arrControlls[$(this).attr('id')] = $(this).val();
    });
    return arrControlls;
}

数组应该具有连续的数字索引。这就是他们的目的。您可以为它们指定命名属性,但设计用于处理数组中数据的工具往往会忽略它们。

给定data中任意位置的数组,jQuery将只关注数字索引。

如果要使用命名键,请使用普通对象。

{}而不是new Array()初始化arrControlls

用户JSON.stringify如下:JSON.stringify(arrControlls)

jQuery.ajax({
    type: "POST",
    url: "../ajax/si-notificar_investigacion.php",
    data: {
        idincidente: $("#idincidente").val(),
        arrControlls : JSON.stringify(arrControlls)
    },
    dataType: 'json',
    async: false,
    success: function(datos) {
        alert(datos);
    }
});