0
我想實現一個AJAX回調來改變一個下拉列表選項基於另一個下拉列表的值。我已經看到在線示例和示例模塊中的示例。我正試圖在其中一個管理頁面表單上實現該示例。Drupal管理窗體AJAX回調不工作
爲了簡化,我嘗試實現以下操作:只需在第一個下拉列表發生更改後使用隨機數字更改第二個下拉列表的標題。請注意,我正在使用字段收集字段。
function myaction_form_alter(&$form, &$form_state, $form_id) {
$form['field_programme_permission']['und']['0']['field_programme']['und']['#ajax']=array(
'event' => 'change',
'callback' => 'programmes_ajax_callback',
'method' => 'replace',
'wrapper' => 'countries_wrapper'
);
$form['field_programme_permission']['und']['0']['field_countries']['und']['#title']=rand(1,100);
return $form;
}
function programmes_ajax_callback($form, $form_state) {
return $form['field_programme_permission']['und']['0']['field_countries'];
}
就好像programmes_ajax_callback根本沒有被觸發。我看到這個Drupal AJAX請等待消息,但沒有發生實際情況。奇怪的是,如果我提交表單並且它沒有通過驗證,我甚至不會看到這個Drupal AJAX「請稍候」的消息。我儘可能簡化了代碼,試圖指出問題所在,但它不起作用...
任何想法?
您是否收到錯誤消息?嘗試在回調中使用error_log('something'),以確保你甚至不會到達那裏。 – carmel
嘗試返回一個簡單的字符串,而不是$ form數組。在回調中返回'
頁面上是否存在'countries_wrapper'?可能的問題。 – Sumoanand