gpt4 book ai didi

php - drupal 表单操作

转载 作者:行者123 更新时间:2023-12-04 05:52:18 25 4
gpt4 key购买 nike

我创建了一个表单,如:

function create_custom_form($form, &$form_state) {
$form['#action'] = "#";
....
}

function create_custom_form_validate($form, &$form_state) {
....
}

function create_custom_form_submit($form, &$form_state) {
....
if(..)
drupal_goto('abc');
else
drupal_goto('xxx');
}

当我在采取行动之前和阅读我的函数之后提交这个表单 drupal 时......我如何绕过 Action 表单并只读取 _submit 函数?

最佳答案

请勿使用 drupal_goto 因为可能有更多的“提交”回调要执行。 drupal_goto函数会中断这些。

相反,使用 $form_state['redirect'] = ... http://api.drupal.org/api/drupal/includes!form.inc/function/drupal_redirect_form/7

function create_custom_form_submit($form, &$form_state) {
....
if(..)
$form_state['redirect'] = 'abc';
else
$form_state['redirect'] = 'xxx';
}

由于此函数具有相同的表单 ID ( create_custom_form ) - 附加单词“_submit”,则此函数将自动执行,因此无需在表单中添加任何提交回调。

如果您希望在提交时执行附加功能,那么您应该按照 Hamza 的建议进行操作,只有您的附加功能具有不同的名称。例如

function create_custom_form($form, &$form_state) {
$form['#action'] = "#";
....
// Add any additional callbacks to call before any redirects happen
$form['#submit'][] = 'create_custom_form_additional_submit_callback';
$form['#submit'][] = ...
}

function create_custom_form_additional_submit_callback($form, &$form_state) {
// Do something before redirect
...
}

在上面的例子中:
  • create_custom_form_additional_submit_callback


  • create_custom_form_submit (因为它的名称与附加了“_submit”相同)

  • 将执行,并且只有当它们都完成时才会执行重定向。

    关于php - drupal 表单操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9940580/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com