В моей функции проверки для формы API Drupal Forms я пытаюсь зарядить кредитную карту пользователя. Если это удастся, я хотел бы передать ссылочный номер функции отправки, чтобы ее можно было использовать там. Каков наилучший способ сделать это?Передача информации из функции проверки API API Drupal для функции отправки
3
A
ответ
3
documentation говорит, что это:
Обратите внимание, что по состоянию на Drupal 6, вы можете просто хранить произвольные переменные в $ форме [ «# 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
}
}
+4
Переменная $ form_state определенно там, где вы хотите придерживаться этой информации - это именно то, для чего она предназначена, и (достаточно забавно) «проверка кредитной карты во время проверки» была одним из примеров использования, используемых для обоснования дизайна текущего валидация/представление. – Eaton
Hrrm. Я понял, что на самом деле я не отвечал на заданный вами вопрос. Теперь он должен применяться к проблеме немного больше. – jergason