Drupal表单提交按钮和处理程序FAQ:如何使用Drupal提交按钮创建Drupal表单?另外,如何创建Drupal表单提交处理函数?
假设您对创建Drupal表单感到满意,可以非常轻松地向Drupal表单添加一个提交按钮,如下所示:
#一个drupal表单提交按钮 $ form ['submit'] = array( '#value'=> t('保存'), '#type'=>'提交', );
当您创建这样的Drupal表单提交按钮时,Drupal会在表单中呈现一个按钮,其按钮上带有“保存”标签。您可以将该值更改为您想要的任何值。
Drupal提交按钮处理函数
当用户单击您的提交按钮时,Drupal将查找提交按钮处理程序,这是您需要定义的PHP函数。(毕竟,你如何处理表单提交过程取决于你。)
如果您没有在Drupal表单定义中指定提交处理程序函数的名称,Drupal将查找遵循默认Drupal命名约定的提交处理程序函数。以下是此命名约定的工作原理。
当我第一次定义我的Drupal表单时,我包含一个'page callback'定义,如下所示:
'page callback'=>'firstmodule_form',
这告诉Drupal表单系统我稍后会有一个这样定义的函数:
#define我的drupal表单id function firstmodule_form(){ return drupal_get_form('mymodule_form1'); }
字符串'firstmodule_form'将'page callback'连接到此函数名称。
此函数将我的表单的id定义为名称为“mymodule_form1”,因此默认情况下,Drupal将查找名为“mymodule_form1_submit”的表单提交处理程序。Drupal只是通过在表单ID中添加“_submit”来获取此名称。
既然Drupal有一个表单提交处理程序的名称,我可以像这样定义我的提交处理程序:
#我们的drupal表单提交名为'foo'的模块的处理程序 function mymodule_form1_submit($ form,&$ form_state){ #在这里添加提交处理程序逻辑,或者在一个非常简单的情况下, #只渲染这样的消息: drupal_set_message(t('谢谢,您的表单已提交。')); }
当然,你需要在这里做更多与表单变量相关的工作,你可能想要包含一个Drupal表单重定向语句,但希望这足以让你开始朝着正确的方向前进。
指定自己的表单提交处理程序名称
如果您不喜欢默认的Drupal命名约定,则可以改为指定表单提交按钮处理程序的名称,如下所示:
#一个drupal表单提交按钮 $ form ['submit'] = array( '#value'=> t('保存'), '#type'=>'提交', '#submit'=> array('foo_handler'), );
在这个例子中,当按下表单的提交按钮时,Drupal将调用名为'foo_handler'的函数来处理表单处理,所以你现在需要定义一个Drupal表单提交处理程序,如下所示:
function foo_submit($ form,&$ form_state){ #在这里添加你的逻辑 }
Drupal表单提交按钮示例 - 摘要
我希望这个Drupal表单提交按钮示例很有帮助。如果您有任何问题,请在下面的评论部分留言,我很乐意提供更多信息。