4

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

4

1 回答 1

3

文档是这样说的:

请注意,从 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
  }
}
于 2009-07-30T18:36:50.833 回答