Я пытаюсь сделать ajax-обновление в прототипе с некоторыми значениями из множественной выборки, которая отправляет такие запросы, как.
Parameters: {"action"=>"use_campaign", "campaigns"=> ["27929","27932"] , "advertiser_id"=>"", "controller"=>"admin/reporting", "ad_id"=>""}
, как вы можете видеть, запрос отправляет элементы «кампаний» в виде массивазначений, я пытаюсь сделать то же самое с этим кодом 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
}
});
кампания получает правильную информацию в виде массива, например:
[ "27929", "27932" ]
, ноКажется, что обновление прототипа AJAX отправляет запрос как:
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"=>""}
Есть что-нибудь, чтобы сделать это, как я хочу?
Спасибо за все.