php - 使用钩子(Hook)表单提交如何阻止从同一提交调用其他函数

标签 php mysql drupal

嗨,抱歉我的术语不好。

我正在使用 drupal

我使用钩子(Hook)形式alter和钩子(Hook)形式提交来更改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 组值被发送到我的数据库。

如何阻止发送原始值集?

感谢您的帮助

最佳答案

通过执行以下操作

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

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

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

关于php - 使用钩子(Hook)表单提交如何阻止从同一提交调用其他函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7919958/

相关文章:

php - 一些免费的邮件服务器发送邮件

drupal 7 不呈现自定义区域

php - 将现有站点迁移到 Drupal 之类的 CMS 或 Zend 之类的框架,或者两者都不迁移?

.htaccess - 在 drupal 文件夹下运行不同的 CMS 系统

php - Google adsense 跟踪点击次数的方法?

php - 如果页面上存在 JavaScript 错误,谷歌地图是否无法加载?

php - Laravel 创建复合外键时出错

php - 你如何决定你在你的配置文件和你的数据库中放置的内容

从 bash 脚本运行查询时 MySQL 复制不起作用

mysql - 选择不返回实际值的 IN 子句中的值