Javascript:在Ajax中传递动态数据名属性
我的代码如下:Javascript:在Ajax中传递动态数据名属性,javascript,php,ajax,variables,dynamic,Javascript,Php,Ajax,Variables,Dynamic,我的代码如下: 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){
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){
});
我注意到代码是在什么时候执行的。查看Google Chrome开发者工具中的“网络”选项卡:
我期望这样:
template_id: 1
image_id: 2
primary_id: 3
photo: 4
var image_type = "photo";
var dataToPass = {};
dataToPass['template_id'] = 1;
dataToPass['image_id']=2;
dataToPass['primary_id']= 3;
dataToPass[image_type] = 4;
我将如何实现它
$image\u type
是动态的,因此第四个属性名称可以随时更改。您需要首先创建对象,然后使用[]使用变量设置动态键
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){
});
事先准备好数据变量并将其传递给AJAX函数 这样做:
template_id: 1
image_id: 2
primary_id: 3
photo: 4
var image_type = "photo";
var dataToPass = {};
dataToPass['template_id'] = 1;
dataToPass['image_id']=2;
dataToPass['primary_id']= 3;
dataToPass[image_type] = 4;
那么问题出在哪里??只需在ajax代码中将image_type更改为photo即可。谢谢您给我一个想法。这种行为背后的原因是什么?