【问题标题】:Drupal 7 - Form API Custom ModuleDrupal 7 - 表单 API 自定义模块
【发布时间】:2012-12-06 18:44:14
【问题描述】:

我有一个计算两个值的表单,表单工作得很好,但是我在计算如何计算这两个值并将答案作为呈现的 HTML 返回时遇到了一些问题,因此我可以为用户查看。

所有帮助将不胜感激。谢谢。

【问题讨论】:

  • 你有什么你尝试过的例子吗?
  • 我正要尝试 hook_submit 但还没有,但我不确定这是否会给出我想要的结果。一定有某种钩子可以做我所追求的。

标签: drupal drupal-7 drupal-modules form-api


【解决方案1】:

在 Drupal 表单中,创建表单通常需要三种类型的回调:

  • 表单构建器是使用表单 API 理解的数组构建表单的函数
  • 表单验证处理程序是验证用户提交的值的函数
  • 表单提交处理程序是作用于用户提交的值的函数

在这些函数中,输出对用户提交的值进行的计算结果的函数是最后一个。通常,表单提交处理程序将数据保存在数据库中,并通过drupal_set_message()向用户显示消息,但也可以简单地显示对输入数据进行的操作结果。

从 Drupal 7 开始,表单提交处理程序的输出以及菜单回调产生的输出可以是渲染数组,而不是字符串。渲染数组的优点是可以通过 hook_page_build()hook_page_alter() 从第三方模块轻松更改。

node_view() 是一个返回渲染数组而不是字符串的菜单回调示例。

【讨论】:

  • 类。非常感谢你。很有帮助。现在将使用 drupal_set_message,因为客户对此表示支持,但将研究 hook_page_build 解决方案,因为从长远来看,这可能是我正在寻找的。​​span>
  • 如果这有助于您得出答案,请考虑将他的答案设置为已接受。
【解决方案2】:

如果这只是您想要的消息,那么您应该查看drupal_set_message。它允许您设置这样的消息:

drupal_set_message(t('Hello, world.'),'myClass');

像这样输出 HTML:

<div class="messages myClass">Hello, world</div>

这将是一种非常简单的方法,可以在提交表单后设置一条消息供用户查看。如果您需要更高级的东西,请查看我的回答 here 和这个 Drupal 回答 here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-19
    • 1970-01-01
    • 2013-04-12
    • 1970-01-01
    相关资源
    最近更新 更多