jQuery数组设置键和值,并通过AJAX发送数组

时间:2014-03-12 13:36:21

标签: javascript jquery ajax arrays

我想将键值对发送到我的php页面,但我需要从数据标签中动态设置键值和值。

这是我迄今为止的代码:

function send(){
    var attr = new Array();

    var key = $('#add').attr('data-key');
    var value = $('#add').attr('data-value');

    attr.push({ key : value });

    var data = {attributes: attr};

    $.ajax({
            url: "ajax.php",
            type: "POST",
            data: data,
            success: function(result) {
                alert(result)
            }
    });

}

这不是实际代码,它只是基本功能。

问题在于:

attr.push({ key : value });

'键'不被视为我设定的变量。

我能帮忙吗?我真的很感激。非常感谢你!

5 个答案:

答案 0 :(得分:6)

使用bracket notation

而不是attr.push({ key : value });使用

var object = {}; 
object[key] = value;
attr.push(object);

答案 1 :(得分:1)

如果你这样做了:

var key = "abc", value="pqr";
arr.push({key: value});

它会有以下内容:

[Object { key="pqr"}]

你想要的东西..

你必须能够做到这一点:

var arr = new Array();
keyValuePair = {};
keyValuePair[key]=value; // set your dynamic values

arr.push(keyValuePair);

现在你有:

[Object { abc="pqr"}]

答案 2 :(得分:1)

这是一个设置动态键和数组值的简单示例。

 var key = 1;  //your dynamic values
 var value = 2;
 var key1 = 3;
 var value1 = 5;

var myArray = new Array();
myArray[key] = value;  // set array key and values
myArray[key1] = value1;

// show the values stored
for (var i in myArray) {
    alert('key is: ' + i + ', value is: ' + myArray[i]);
}

答案 3 :(得分:0)

管理"数据"作为一个字符串。

   data = "";
data += key + ":"+value;

当然,如果您在表单中输入,表单序列化可能会更好。

答案 4 :(得分:0)

你可以试试这个:

的JavaScript

var objects = [];

var newObject= new Object();
newObject.key = value;

objects.push(newObject);

然后,您可以使用AJAX POST这个对象数组。在PHP中,您可以再次检索该值:

PHP:

foreach($_POST['objects'] as $object) {
    echo $object['value'];
}

不确定这是否是您需要的,但如果我是正确的话,它确实有用。