вопрос может быть - "как я могу запустить функцию js с обновленными параметрами повторного обратного вызова"
это то, что я сделал:
моя форма выглядит так:
$form['letterdrop_id'] = array(
'#type' => 'select',
'#title' => 'Letterdrops',
'#options' => $letterdrops,
'#prefix' => '<div id="replace_div_ld">',
'#suffix' => '</div>',
'#ajax' => array(
'callback' => 'agc_ems_form_map_change',
),
);
с этой функцией обратного вызова:
function agc_ems_form_map_change($form, &$fstate) {
return array(
'#type' => 'ajax',
'#commands' => array(
// this command is to reload a form element
ajax_command_replace("#agc_map", render($form['map'])),
// this command does the business and calls my custom function,
// with a parameter object supplied
array('command' => 'afterAjaxCallbackExample',
'selectedValue' => 'i am not a fish',
)
));
}
это моя функция js
(function($, Drupal) {
// put function into drupal commands:
Drupal.ajax.prototype.commands.afterAjaxCallbackExample =
function(ajax, response, status) {
// response object as passed in our Ajax callback
// do what you want in here
alert(response.selectedValue);
};
}(jQuery, Drupal));
100% кредит jaypan