小编and*_*vog的帖子

如何使用值数组作为参数来创建原型ajax请求?

我正在尝试使用来自发送请求的多记录选择的一些值在原型中进行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)

javascript ajax prototypejs

1
推荐指数
1
解决办法
4049
查看次数

标签 统计

ajax ×1

javascript ×1

prototypejs ×1