首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

是否可以更改以前提交回调的$form_state['redirect']?

$form_state['redirect'] 是 Drupal 中用于重定向回调函数的一个属性。一旦 $form_state['redirect'] 设置好了,通常是在表单提交后,就不能再更改它了。

$form_state['redirect'] 的作用是告诉 Drupal 在表单处理完成后要执行的重定向操作。它可以是一个 URL,也可以是一个包含路由参数的数组。

如果你需要在提交回调之后更改重定向地址,你可以考虑使用其他方法来实现。

一种常见的方法是使用 Drupal 的消息系统来显示一个成功消息,然后在表单的构建函数中根据消息的存在来决定是否执行重定向。例如:

代码语言:txt
复制
function mymodule_my_form_submit($form, &$form_state) {
  // 执行表单的提交操作

  // 显示一个成功消息
  drupal_set_message(t('The form was submitted successfully.'));

  // 将一个标志位设置为 TRUE
  $form_state['redirect_flag'] = TRUE;
}

function mymodule_my_form($form, &$form_state) {
  // 构建表单

  // 如果提交回调已经执行并且重定向标志位被设置为 TRUE,则执行重定向
  if (isset($form_state['redirect_flag']) && $form_state['redirect_flag']) {
    $form_state['redirect'] = 'path/to/redirect';
  }

  return $form;
}

在这个例子中,当表单提交后,成功消息被显示,然后在表单的构建函数中检查一个名为 $form_state['redirect_flag'] 的标志位。如果标志位被设置为 TRUE,则设置重定向地址为 'path/to/redirect'。

对于 Drupal 中的具体概念和名词,我可以为您提供更多信息,但需要指定具体的问题或概念。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券