欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

Drupal表单提交按钮和提交处理函数示例

Drupal表单提交按钮和提交处理函数示例

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表单提交按钮示例很有帮助。如果您有任何问题,请在下面的评论部分留言,我很乐意提供更多信息。


来自 https://alvinalexander.com/drupal/drupal-form-submit-button-handler-function

普通分类: