【问题标题】:passing information from a Drupal Forms API validation function to a submit function将信息从 Drupal Forms API 验证函数传递到提交函数
【发布时间】:2009-07-30 18:14:54
【问题描述】:

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

【问题讨论】:

  • Hrrm。我意识到我根本没有回答你问的问题。它现在应该更适用于这个问题。

标签: drupal drupal-fapi


【解决方案1】:

documentation 是这样说的:

请注意,从 Drupal 6 开始,您也可以简单地将任意变量存储在 $form['#foo'] 中,只要 '#foo' 不与 Form API 的任何其他内部属性冲突。 1234565>

所以你可以这样做:

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
  }
}

【讨论】:

  • $form_state 变量绝对是您想要粘贴该信息的地方——这正是它的用途,而且(有趣的是)“验证期间的信用卡验证”是使用的示例用例之一证明当前验证/提交工作流程的设计合理性。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多