2009-07-30 23 views
3

在我對Drupal Forms API表單的驗證功能中,我試圖對用戶的信用卡收費。如果成功,我想將參考號傳遞給提交函數,以便可以在那裏使用。這樣做的最好方法是什麼?將信息從Drupal Forms API驗證功能傳遞到提交功能

+0

Hrrm。我意識到我沒有真正回答你問的問題。它現在應該適用於這個問題。 – jergason 2009-07-30 20:08:25

回答

3

documentation這樣說:

注意,如Drupal的6,你也可以簡單地存儲在$形式[「#富」]相反,只要「#foo」不與任何衝突的任何變量Form 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 2009-07-30 21:55:08