Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用值数组作为参数生成原型ajax请求?_Javascript_Ajax_Prototypejs - Fatal编程技术网

Javascript 如何使用值数组作为参数生成原型ajax请求?

Javascript 如何使用值数组作为参数生成原型ajax请求?,javascript,ajax,prototypejs,Javascript,Ajax,Prototypejs,我试图在原型中使用multirecordselect中的一些值进行ajax更新,它发送一个请求,如 Parameters: {"action"=>"use_campaign", "campaigns"=> ["27929","27932"] , "advertiser_id"=>"", "controller"=>"admin/reporting", "ad_id"=>""} 正如您所看到的,请求将“活动”元素作为一个值数组发送,我正试图在prototype 7

我试图在原型中使用multirecordselect中的一些值进行ajax更新,它发送一个请求,如

Parameters: {"action"=>"use_campaign", "campaigns"=> ["27929","27932"] , "advertiser_id"=>"", "controller"=>"admin/reporting", "ad_id"=>""} 
正如您所看到的,请求将“活动”元素作为一个值数组发送,我正试图在prototype 7上对这个js代码执行相同的操作

// 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
                }
 });
活动ID以数组的形式获取正确的信息,如:

[ "27929", "27932" ]
但prototype ajax update似乎正在发送如下请求:

http://my_domain/admin/reporting/use_campaign?ad_id=&advertiser_id=&campaigns=27929&campaigns=27932
发送的参数如下:

Parameters: {"action"=>"use_campaign", "campaigns"=> "27929" , "advertiser_id"=>"", "controller"=>"admin/reporting", "ad_id"=>""}
我也试过了

Object.toJSON(campaign_ids)
但我只得到一个像

Parameters: {"action"=>"use_campaign", "campaigns"=>"[\"27929\",\"27932\"]" , "advertiser_id"=>"", "controller"=>"admin/reporting", "ad_id"=>""}
不管怎么说,还是有办法按照我的意愿去做


谢谢大家。

看起来您使用PHP作为后端框架。 为了确保PHP像GET参数一样理解数组,您需要在参数名称中添加一个
[]

          parameters : {
                //...
                'campaigns[]' : campaign_ids
            }

看起来您使用PHP作为后端框架。 为了确保PHP像GET参数一样理解数组,您需要在参数名称中添加一个
[]

          parameters : {
                //...
                'campaigns[]' : campaign_ids
            }

好吧,愚蠢的我,只需输入正确的参数“活动[]”,而不是“活动”。对不起,ask=)好吧,愚蠢的我,只需输入正确的参数“活动[]”,而不是“活动”。抱歉问=)谢谢我已经解决了它,并发表了评论,因为stackoverflow不让我回答自己。。。不管怎样,萨克是。我正在使用rails=)啊,很有趣。看起来RoR也遇到了同样的问题。谢谢,我已经解决了这个问题,并发表了评论,因为stackoverflow dosen不让我回答自己。。。不管怎样,萨克是。我正在使用rails=)啊,很有趣。看起来RoR也有同样的问题。