将信息从Drupal Forms API验证函数传递给提交函数

时间:2009-07-30 18:14:55

标签: drupal drupal-fapi

在我的Drupal Forms API表单的验证函数中,我尝试向用户的信用卡收费。如果成功,我想将参考号传递给提交功能,以便在那里使用它。这样做的最佳方式是什么?

1 个答案:

答案 0 :(得分:3)

documentation说:

注意,从Drupal 6开始,你也可以简单地在$ form ['#foo']中存储任意变量,只要'#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
  }
}