2016-02-28 152 views
0

传递动态数据的name属性我有下面的代码:的Javascript:在阿贾克斯

image_type = 'photo'; 
jQuery.ajax({ 
    type: 'POST',    
    url: '?q=myid_save_input_image', 
    data:{ 
     'template_id': 1, 
     'image_id': 2, 
     'primary_id': 3, 
     image_type : 4, 
    } 
}).done(function(o){              
}); 

执行代码时,我注意到了。纵观网络选项卡中的谷歌Chrome开发者工具:

enter image description here

我期待这样的:

template_id: 1 
image_id: 2 
primary_id: 3 
photo: 4 

我将如何实现呢? $image_type是动态的,所以第四个属性名称可以随时更改。

+0

是什么问题,然后??只需在您的ajax代码中将image_type更改为照片即可。 – Drudge

回答

1

您需要首先创建对象,然后使用[]使用变量设置动态键。

var formData = { 
    'template_id': 1, 
    'image_id': 2, 
    'primary_id': 3 
}; 
image_type = 'photo'; 
formData[image_type] = 4; 

jQuery.ajax({ 
    type: 'POST',    
    url: '?q=myid_save_input_image', 
    data: formData 
    }).done(function(o){              
}); 
+0

谢谢你给我一个主意。这种行为背后的原因是什么? – Qerjiuthn

1

准备好数据变量并将它传递给AJAX函数。

让这样的:

var image_type = "photo"; 

var dataToPass = {}; 
dataToPass['template_id'] = 1; 
dataToPass['image_id']=2; 
dataToPass['primary_id']= 3; 
dataToPass[image_type] = 4;