【问题标题】:using hook form submit how to stop other functions being called from same submit使用钩子表单提交如何停止从同一个提交中调用其他函数
【发布时间】:2011-12-16 17:23:14
【问题描述】:

您好,抱歉我的术语不好。

我正在使用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))));

}

然而,原始值也被提交,所以我没有改变提交部分,只是表单。然后我的提交代码和原件正在提交。所以两组值被发送到我的数据库。

如何防止发送原始值集?

感谢您的帮助

【问题讨论】:

    标签: php mysql drupal


    【解决方案1】:

    通过执行以下操作

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

    您正在添加提交处理程序,而不是替换默认提交处理程序。如果你想替换默认的提交处理程序,你应该尝试

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

    【讨论】:

      猜你喜欢
      • 2020-12-28
      • 1970-01-01
      • 2013-07-31
      • 2012-11-03
      • 2015-08-17
      • 1970-01-01
      • 2012-04-22
      • 2013-03-14
      • 1970-01-01
      相关资源
      最近更新 更多