我正在尝试使用来自发送请求的多记录选择的一些值在原型中进行ajax更新.
Parameters: {"action"=>"use_campaign", "campaigns"=> ["27929","27932"] , "advertiser_id"=>"", "controller"=>"admin/reporting", "ad_id"=>""}
Run Code Online (Sandbox Code Playgroud)
正如你所看到的那样,请求将"campaigns"元素作为一个值数组发送,我试图用这个js代码在原型7上做同样的事情.
// get the campaigns
var campaign_ids = {};
var campaigns = $('filter_form').getInputs("hidden","report[campaigns][]");
campaigns.each( function(field) {
campaign_ids.push(field.value);
});
new Ajax.Updater('ad_filter', '/admin/reporting/use_campaign', {
method : 'get',
asynchronous : true,
evalScripts : true,
parameters : {
'advertiser_id' : $('filter_form')['report[advertiser_id]'].value,
'ad_id' : $('filter_form')['report[ad_id]'].value,
'campaigns' : campaign_ids
}
});
Run Code Online (Sandbox Code Playgroud)
campaigns_ids正在获取正确的信息,如:
[ "27929", "27932" ]
Run Code Online (Sandbox Code Playgroud)
但似乎原型ajax更新正在发送一个请求,如:
http://my_domain/admin/reporting/use_campaign?ad_id=&advertiser_id=&campaigns=27929&campaigns=27932
Run Code Online (Sandbox Code Playgroud)
什么发送参数如:
Parameters: {"action"=>"use_campaign", "campaigns"=> "27929" , "advertiser_id"=>"", "controller"=>"admin/reporting", "ad_id"=>""}
Run Code Online (Sandbox Code Playgroud)
我也尝试过
Object.toJSON(campaign_ids)
Run Code Online (Sandbox Code Playgroud)
但我只得到一个逃脱的字符串
Parameters: {"action"=>"use_campaign", "campaigns"=>"[\"27929\",\"27932\"]" , "advertiser_id"=>"", "controller"=>"admin/reporting", "ad_id"=>""} …Run Code Online (Sandbox Code Playgroud)