ajax循环并附加动态数据参数

时间:2016-09-30 18:39:14

标签: javascript jquery ajax loops dynamic

这有效......

$.ajax({url: '../cfc/saveData.cfc', data: {method: 'addAccountInfo', acctID: aID, firstName: firstName, lastName: astName, address1: address1, address2: address2, phone1: phone1, phone2: phone2, rowID:i, modId: modId}, success: function(data){return true;}});

但我想在循环中动态地执行此操作 这是循环......

fld += jsArray[c] + ": '" + col + "', "; 

jsArray [c] 是字段名称(firstName,lastName,address1,address2,phone1,phone2)

col 是值(Monica,Jones,626 Hollow Bridge Lane,(555)555-5555) 我删除了最后一个逗号

fld = fld.replace(/,\s*$/, "");

fld 看起来像这样

firstName:' Monica',lastName:' Jones',address1:' 626 Hollow Bridge Lane',Phone1:'(555)555- 5555'

如果未填写地址2和电话2,则不会包含该地址。 我想用ajax ......

$.ajax({url: '../cfc/saveData.cfc', data: {method: 'addAccountInfo', acctID: aID, fld, rowID:i, modId: modId}, success: function(data){return true;}});

这不是保存但如果我像上面的第一个一样写每个字段,那么它可以工作。有没有办法让这样的事情发挥作用。 这可以做到,我做错了什么?

1 个答案:

答案 0 :(得分:0)

如果我理解正确,那么您可以直接创建对象,而不是将键值对附加到字符串中:

var data = {};

// Assuming a loop would be around this part
var key = jsArray[c];
var value = col;
data[key] = value;

然后你可以将它传递给你的ajax请求:

$.ajax({url: '../cfc/saveData.cfc', data: data, success: function(data){return true;}});