我正在尝试构建一个数据数组,然后使用post到php的ajax - 下面是我的代码:
$('#mainBodySaveSubmitButtonProfilePhotoIMG').click(function() {
var profilePhotoArray = [];
$('.mainUnapprovedProfilePhotoWrapperDIV').each(function() {
var action = '';
alert( this.id );
if($('.mainUnapprovedProfilePhotoAttractiveIMG', this).is(':visible')) {
alert('attractive...');
action = 'attractive';
}
else if($('.mainUnapprovedProfilePhotoDeleteIMG', this).is(':visible')) {
alert('delete...');
action = 'delete';
}else{
alert('normal...');
action = 'normal';
}
profilePhotoArray[this.id+'_'+this.id] = action;
});
alert(profilePhotoArray.length);
for (i=0;i<profilePhotoArray.length;i++) {
console.log("Key is "+i+" and Value is "+array[i]);
}
$.post('scripts/ajax/ajax_approval_functions.php', {
'approvalProfilePhotos': '1',
'approvalProfilePhotosData': profilePhotoArray},
function(data) {
alert(data);
});
});
if,else if,else部分工作正常,因为我可以看到警报。
当我尝试提醒数组长度'profilePhotoArray'时,它说0,所以我没有正确填充数组。我需要使用.push()吗?我以为这种格式还可以吗?
在通过ajax发送到php之前,我还需要对数组做什么吗?
三江源
**编辑 - 我正在添加“profilePhotoArray [this.id +'_'+ this.id] = action;” this.id两次只是为了证明这个词,因为我将传递这样的第二个变量...我最好使用JSON吗?
答案 0 :(得分:3)
Javascript数组使用数字索引,因此您的存储失败。使用javascript对象存储基于字符串的键。
var lang=new Object();
lang["foo"]="Foo";
lang["bar"]="Bar";