Javascript jQuery数组设置键和值,并通过AJAX发送数组
我想将键值对发送到我的php页面,但我需要从数据标记动态设置键值 以下是我目前掌握的代码:Javascript jQuery数组设置键和值,并通过AJAX发送数组,javascript,jquery,ajax,arrays,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};
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 });
“key”不是我设置的变量
我能得到一些帮助吗?我真的很感激。多谢各位 将“数据”作为字符串管理
data = "";
data += key + ":"+value;
当然,如果表单中有输入,则表单序列化可能会更好。更新:
自ECMAScript 6(2015)以来,可以使用它,所有当前浏览器和其他JavaScript环境都支持它:
attr.push({[key]:value})代码>
原始答复:
使用:
而不是attr.push({key:value})代码>使用
var object = {};
object[key] = value;
attr.push(object);
如果您这样做:
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"}]
下面是一个设置数组的动态键和值的简单示例
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]);
}
你可以试试这个:
JavaScript
var objects = [];
var newObject= new Object();
newObject.key = value;
objects.push(newObject);
然后,您可以使用AJAX发布这个对象数组。在PHP中,您可以再次检索该值:
PHP:
不确定它是否是您所需要的,但如果我是正确的,它确实有效。这可能会有所帮助:为什么不直接序列化表单或div输入<代码>变量数据=$('#myformid')。序列化()代码>然后让php处理提交的键和值可能它不是一个表单…不幸的是它不是一个表单。不过,谢谢你的提示。
foreach($_POST['objects'] as $object) {
echo $object['value'];
}