2012-02-10 83 views
1

在某些內容類型表單中我添加了一個複選框。當這個複選框被選中時,我想刪除一些提交的數據。在提交後在drupal中更改表單數據

要做到這一點我創建了一個自定義模塊(my_module.module):

function my_module_form_alter(&$form, &$form_state) { 
    // ... 
    $form['#submit'][] = 'my_module_form_alter_submit'; 
} 

function my_module_form_alter_submit($form_id, $form_values) { 
    drupal_set_message(t('Submit Function Executed!')); 
} 

我怎樣才能知道這個模塊只指某一containt類型的形式?如何在提交數據時刪除數據?

回答

2

假設你正在改變一個節點編輯表單,您可以有條件地添加提交回調,如(在你的hook_form_alter):

if(isset($form['#node']) && $form['type']['#value'] == 'page') { 
    $form['#submit'][] = 'my_module_form_alter_submit'; 
} 

或者,你可以在提交回調檢查$形式參數類似的方式。

你缺少的第三個參數hook_form_alter這應該是form_id $,和你提交的回調應該接受的參數,如:

function my_module_form_alter_submit($form, &$form_state) { ... } 

參見:

http://api.drupal.org/api/drupal/developer%21hooks%21core.php/function/hook_form_alter/6

http://api.drupal.org/api/drupal/developer%21topics%21forms_api.html/6

0

要在提交後刪除數據,請在form_alter函數中使用表單fie上的unset() LD。 unset($form['my-field']);

+0

這不是問題。 – doublejosh 2013-06-29 19:49:20