2009-07-30 7 views
3

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

+0

Hrrm. Я понял, что на самом деле я не отвечал на заданный вами вопрос. Теперь он должен применяться к проблеме немного больше. – jergason

ответ

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