对于我糟糕的术语,我很抱歉。
我正在使用drupal
我使用hook form alter和hook form submit来改变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))));
}
然而,原始值也在提交,因此我不会改变提交部分,只是表单。然后我的提交代码和原件正在提交。因此,有两组值被发送到我的数据库。
如何阻止发送原始值集?
感谢您的帮助
答案 0 :(得分:1)
通过以下方式
$form['#submit'][] = 'mymodule_form_submit';
您正在添加提交处理程序,而不是替换默认提交处理程序。如果要替换默认的提交处理程序,则应尝试
$form['#submit'][0] = 'mymodule_form_submit';