используя форму ловушки submit как остановить вызов других функций из той же отправки - PullRequest
0 голосов
/ 27 октября 2011

Привет, извините за мою неверную терминологию.

Я использую drupal

Я использую форму перехвата alter и форму пересылки 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))));

}

, однако исходные значения также отправляются, поэтому я не изменяю отправляющую часть, а только форму.тогда мой код отправки и оригинал подаются.Поэтому в мою базу данных отправляются 2 набора значений.

Как я могу предотвратить отправку исходного набора значений?

Спасибо за любую помощь

1 Ответ

1 голос
/ 27 октября 2011

Делая следующее

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

Вы добавляете свой обработчик отправки, а не заменяете обработчик отправки по умолчанию. Если вы хотите заменить обработчик отправки по умолчанию, попробуйте

$form['#submit'][0] = 'mymodule_form_submit';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...