我正在开发一个 Rails 应用程序,我想创建动态数量的变量以通过 AJAX 请求传递给我的控制器。也就是说,如果只有 3 个对象,我想创建 3 个变量,如果有 5 个对象,我想创建 5 个变量。
在我的 javascript 文件中,我已经设法创建了动态数量的变量。
var count = parseInt("#{@matches.count}");
while(count>0){
eval("result_" + count + "= $('input:radio[name=result_" + count + "]:checked').val()");
count -= 1;
}
这会创建result_1
, result_2
,result_3
等。
到目前为止,我的 AJAX 请求是静态的,因为它总是必须有 5 个结果。我希望这是动态的。
$.ajax({
type: 'GET',
url: '/mt_results/create',
dataType: 'json',
data: {
'result_1' : { matched_id: "#{@matches.first.id}", result: result_1 },
'result_2' : { matched_id: "#{@matches.second.id}", result: result_2 },
'result_3' : { matched_id: "#{@matches.third.id}", result: result_3 },
'result_4' : { matched_id: "#{@matches.fourth.id}", result: result_4 },
'result_5' : { matched_id: "#{@matches.fifth.id}", result: result_5 }
},
success: function(e){
console.log("AWWWWWWW YEAH!!");
}
});
是动态创建 JSON 对象(类似于我创建的方式results_#
)并将其分配给变量(我们称之为data_var
)的最佳方法。然后,我可以像下面这样传递 data_var:
data: data_var
任何关于如何改进我的代码的提示或反馈将不胜感激。