Передача информации из функции проверки API Drupal Forms в функцию отправки - PullRequest
3 голосов
/ 30 июля 2009

В моей функции проверки формы API Drupal Forms я пытаюсь снять с кредитной карты пользователя. Если это удастся, я бы хотел передать ссылочный номер в функцию отправки, чтобы его можно было использовать там. Какой лучший способ сделать это?

1 Ответ

3 голосов
/ 30 июля 2009

Документация гласит:

Обратите внимание, что начиная с Drupal 6, вы также можете просто хранить произвольные переменные в $ form ['# foo'] вместо этого до тех пор, пока #foo не конфликтует с каким-либо другим внутренним свойством API-формы. *

Так что вы можете сделать что-то вроде этого:

function form($form_state) {
//in your form definition function:
$form['#reference_number'] = 0;
}

function form_validate($form, &$form_state) {
  //try to charge card ...
  if ($card_charged) {
    $form_state['values']['#reference_number'] = $reference_number;
  }
}

function submit_form($form, &$form_state) {
  if (isset($form_state['values']['#reference_number'])) {
    $reference_number = $form_state['values']['#reference_number'];
    //do whatever you want
  }
}
...