2009-07-30 5 views
3

Dans ma fonction de validation pour un formulaire API Drupal Forms, je tente de facturer la carte de crédit de l'utilisateur. Si cela réussit, je voudrais passer le numéro de référence à la fonction de soumission afin qu'il puisse être utilisé là. Quelle est la meilleure façon de faire cela?Transmission des informations d'une fonction de validation de l'API Drupal Forms à une fonction de soumission

+0

Hrrm. J'ai réalisé que je n'ai pas vraiment répondu à la question que vous avez posée. Cela devrait s'appliquer au problème un peu plus maintenant. – jergason

Répondre

3

Le documentation dit ceci:

Notez que comme de Drupal 6, vous pouvez aussi simplement stocker des variables arbitraires sous forme de $ [ « # foo »] à la place, aussi longtemps que « #foo » ne pas entrer en conflit avec une autre propriété interne de l'API de formulaire.

Ainsi, vous pouvez faire quelque chose comme ceci:

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

La variable $ form_state est certainement là où vous voulez coller cette information - c'est exactement ce à quoi elle est destinée, et (curieusement) la vérification de la carte de crédit pendant la validation a été l'un des exemples d'utilisation utilisés pour justifier la conception actuelle. validation/soumission du flux de travail. – Eaton

Questions connexes