我想将键值对发送到我的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 });
'键'不被视为我设定的变量。
我能帮忙吗?我真的很感激。非常感谢你!
答案 0 :(得分:6)
而不是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'];
}
不确定这是否是您需要的,但如果我是正确的话,它确实有用。