使用此代碼:Drupal 6,FAPI表單提交兩次,爲什麼?
drupal_set_message('form id: ' .$form_id. ' send with '. $delta . ' and field: '. $field);
我注意到,每一次我點擊£發送」按鈕,提交表單的兩倍,因此我看到這樣的事情:
形式ID:formname2發與圖3和 字段XXX形式ID:formname2與 4和場XXX
的$增量發送,即其中一個的變化,是一種多組CCK場的Δ(我插入一個新的領域到一個cck內容)。這裏的提交功能:
function IngredientsForm_submit($form, &$form_state){
global $user;
$ls_id = $user->ls_id;
$current_ls = node_load($ls_id);
$delta = $form_state['values']['delta'];
$field = $form_state['values']['field_name'];
$form_id = $form_state['values']['form_id'];
$current_ls->field_descrizione_ingrediente[$delta]['value'] = $field;
drupal_set_message('form id: ' .$form_id. ' send with delta: '. $delta . ' and field: '. $field);
node_save($current_ls);
}
奇怪的,事情只有第一次提交似乎是保存在數據庫中,所以保存的數據是正確的......
任何想法,爲什麼有雙submition?
它狡猾,你說得對。我這有兩個定義: '$形式[ '提交'] =陣列( \t \t '#TYPE'=> '提交', \t \t '#VALUE'=> T( '提交'), \t \t \t );' 和 '$形式[ '#提交'] =陣列( \t \t 'IngredientsForm_submit', );' 我怎樣才能合併嗎? – Segolas 2011-05-30 10:12:42
就您的提交處理程序而言,它不會顯得不尋常。第一個是實際的提交按鈕,第二個是當按鈕被點擊時將被調用的函數(假設所有驗證通過)。如果你發佈你的實際表單功能,我可能會提供幫助。 – smthomas3 2011-06-02 18:43:40