В моей функции проверки формы API Drupal Forms я пытаюсь снять с кредитной карты пользователя. Если это удастся, я бы хотел передать ссылочный номер в функцию отправки, чтобы его можно было использовать там. Какой лучший способ сделать это?
Документация гласит:
Обратите внимание, что начиная с 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 } }
Так что вы можете сделать что-то вроде этого:
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 } }