Drupal7 AJAX 提交表單 submit form

Drupal7 原生已經提供一大堆 AJAX 的 API 可以使用
令一些基本的 AJAX 工作變得很簡單,例如

<?php
$form
['howmany_select'] = array(
   
'#title' => t('How many checkboxes do you want?'),
   
'#type' => 'select',
   
'#options' => array(1 => 1, 2 => 2, 3 => 3, 4 => 4),
   
'#default_value' => $default,
   
'#ajax' => array(
     
'callback' => 'ajax_example_autocheckboxes_callback',
     
'wrapper' => 'checkboxes-div',
     
'method' => 'replace',
     
'effect' => 'fade',
    ),
?>

直接入建到 $form 之內
開發人員也不需要自己手動處理 javascript 的問題
只要提供一個正確的 wrapper ID,正確的 method 便可以了

而最重要的 AJAX 提交卻不在文檔之中
而要參考 example module 的例子:

<?php
$form
['submit']['#ajax'] = array(
 
'callback' => 'ajax_example_autocheckboxes_callback',
 
'wrapper' => 'checkboxes-div',
 
'method' => 'append',   
);
?>

直接將 AJAX 加到 submit button 的陣列之中
而最有用的是 method => append
AJAX submit 完成之後常見的動作是加一個成功的訊息
或者轉到一個感謝的頁面

加一個成功的訊息可以使用 method => append
轉到一個感謝的頁面便應該使用 replace,replace 整個wrapper 為感謝頁面

參考
AJAX in Drupal7
Example module

Google