Forms Drupal模块开发:如何在表单提交和页面处理函数之间进行通信
我正在编写一个模块,需要从页面处理程序函数检索表单提交函数中设置的值。原因是我将表单提交的结果呈现在与页面处理程序相同的页面上 我有这个功能,但我使用全局变量,我不喜欢。我希望能够为此使用$form_state['storage'],但不能,因为我无法从页面处理程序访问$form_state变量 有什么建议吗?关于: 您无权访问页面处理程序中的$form_state,但我认为它可能会自动用于form builder函数。看看你能不能用这样的方法把它倒出来Forms Drupal模块开发:如何在表单提交和页面处理函数之间进行通信,forms,drupal,module,drupal-fapi,Forms,Drupal,Module,Drupal Fapi,我正在编写一个模块,需要从页面处理程序函数检索表单提交函数中设置的值。原因是我将表单提交的结果呈现在与页面处理程序相同的页面上 我有这个功能,但我使用全局变量,我不喜欢。我希望能够为此使用$form_state['storage'],但不能,因为我无法从页面处理程序访问$form_state变量 有什么建议吗?关于: 您无权访问页面处理程序中的$form_state,但我认为它可能会自动用于form builder函数。看看你能不能用这样的方法把它倒出来 function _ncbi_subsi
function _ncbi_subsites_show_paths_form($form_state) {
dsm($form_state);
// everything else
}
另一种可能,尽管没有比使用globals好多少,但是可以使用Drupal的变量_set()和变量_get函数
如果只处理一个值,则可以将其作为URL参数从提交处理程序中的$form['#redirect']传递到页面 好主意。我要尝尝其中的一些。让我惊讶的是,这不是一个普遍的需求。我的理解是,您可以:1)从hook_menu()的实现直接将用户发送到表单,将drupal_get_form()作为回调发送,并将表单构建函数的名称作为参数发送。2) 使用hook_菜单中的pass页面处理程序,并在该函数中调用drupal_get_表单。通过将字符串连接到drupal_get_表单的输出,这不是用表单输出其他内容的唯一方法吗?在我看来,您经常希望页面处理程序与表单通信。您需要页面处理程序对表单做什么?您可以使用drupal_get_form()发送任意数量的附加参数,您只需将第一个参数作为表单id即可。有关drupal的问题,还可以访问drupal.stackexchange.com。