构建JavaScript关联数组并使用每个循环传递给PHP
我一直在尝试使用输入值和id在javascript中创建对象,但当我尝试序列化/字符串化时,该对象变为空 我的代码:构建JavaScript关联数组并使用每个循环传递给PHP,javascript,php,json,serialization,each,Javascript,Php,Json,Serialization,Each,我一直在尝试使用输入值和id在javascript中创建对象,但当我尝试序列化/字符串化时,该对象变为空 我的代码: dataArray = []; $('.popover :input').each(function() { dataArray[$(this).attr('id')] = $(this).val(); }); console.log(dataArray); /* RESULT: Arra
dataArray = [];
$('.popover :input').each(function() {
dataArray[$(this).attr('id')] = $(this).val();
});
console.log(dataArray);
/*
RESULT:
Array[0]
home_recent_jobs:"123"
home_recent_jobs2:"345"
length:0
undefined:""
__proto__:Array[0]
*/
var json = $(dataArray).serialize();
var ser = JSON.stringify(dataArray);
console.log(json); // RESULT: EMPTY
console.log(ser); // RESULT: []
想法?我做错了什么?我不久前就有这个问题。 尝试使用这个库,它对我帮助很大
好的。。。经过搜索,我找到了这个解决方案——每个循环都更好 新的每个循环:
$('.popover :input').each(function (index) {
var cid = $(this).attr('id');
var cval = $(this).val();
if(cid && cval) {
var obj = {
id: cid,
val: cval
};
dataArray.push(obj);
}
});
这似乎奏效了。
感谢您的帮助返回空对象。我猜我是以错误的方式构建对象或者类似的方式构建对象。我将此代码设置为$(“input[name='test_modal[]']:checked”)。每个(函数(){checked[$(this.attr('id')]=$(this.val();}var ser=JSON.stringify(checked);console.log(ser);我有[null,“jordan”,“michael”]console.log(ser);您可以使用dataArray.push($(this.val()));谢谢@dimis283这就是我最后要做的;)