2011-10-27 43 views
0

對於我的壞詞彙感到遺憾。使用鉤子表單提交如何停止從相同的提交中調用的其他函數

im使用drupal的

im使用鉤形式改變和鉤形式提交給改變記錄在SQL表數據。

這是代碼

<?php 
function mymodule_form_alter(&$form, $form_state, $form_id) { 
    switch ($form_id) { 
case 'form_id': 
$form['#submit'][] = 'mymodule_form_submit'; 
    break; 
    } 
} 

function mymodule_form_submit($form, &$form_state) { 

$input = db_result(db_query('SELECT MAX(values) FROM {table} WHERE nid = %d', $fid)); 
$input10 = (($input) ? $input : 0) + 10; 
$submit_record = array(
    'nid' => $form_state['values']['nid'], 
    'uid' => $user->uid, 
    'time' => time(), 
    'amount' => $input10, 
); 

drupal_write_record('uc_auction_bids', $submit_record); 

drupal_set_message(t('Saved %title.', array('%title' => ($input10 submitted)))); 

} 

然而,也正在提交的原始值,所以我不會改變提交的一部分,只是形式。那麼我的提交代碼和原件正在提交。所以2套值被髮送到我的數據庫。

如何防止發送的原始值集合?

感謝所有幫助

回答

1

通過執行以下操作

$form['#submit'][] = 'mymodule_form_submit'; 

你加入您提交處理程序,而不是替換默認提交處理。如果要替換默認提交處理程序,你應該嘗試

$form['#submit'][0] = 'mymodule_form_submit';