AJAX中的POST数组

时间:2015-02-18 06:41:59

标签: javascript php jquery arrays 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";

然后它是okey我将此变量作为操作页面中的数组

BUT 如果我使用像这样的价值

['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;
}

2 个答案:

答案 0 :(得分:2)

阵列应该具有连续的数字索引。这就是它们的用途。您可以为它们指定命名属性,但设计用于对数组中的数据执行某些操作的工具往往会忽略它们。

给定data中的任何数组,jQuery只会关注数字索引。

如果您想要命名密钥,请使用普通对象。

使用arrControlls而非{}初始化new Array()

答案 1 :(得分:-1)

用户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);

    }
});