问题标签 [form-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
136 浏览

drupal-6 - Drupal 6 Form-API 设置回复地址

我在 Drupal 6 中使用 Form API 编写了一个表单。其他一切都很好,但是我可以使用 From 值编写一个标头 Reply-to 而不是 drupal_mail 吗?

我尝试将其放入模块内的常规 hook_mail 函数中:

有没有一种非hacky的方法来做到这一点?我们有一个由系统管理员控制的多站点安装,所以我无法进入核心更改内容。

0 投票
2 回答
844 浏览

drupal - Drupal 6:创建表单以创建节点..!

我正在创建一个包含 4 个字段的自定义表单,并且我想创建一个具有一些 CCK 字段的特定内容类型的节点。

我打算在提交此表单时以编程方式创建节点。我计划为某些字段推送默认值,并且某些字段将使用此表单小部件映射..

这是我的代码

现在,当我提交此内容时,它正在创建内容类型,其中文本字段文本作为标题和正文,我打算这样做......但我想将 UID(登录用户 ID)存储在表节点的 uid 列中...我已经尝试过,如您所见...但它仍然发送 0...我需要帮助...请帮助

0 投票
1 回答
1137 浏览

drupal-6 - 具有ahah属性的Drupal 6文本字段表单元素

我有一个带有文本字段元素的表单,当用户开始输入时,我想预先填充不同的元素。

我一直在使用 #ahah 属性,该属性在将事件属性设置为“keyup”时效果很好,但是我失去了对 textfield 元素的关注,因为在触发“keyup”事件的那一刻,由于 ahah 的行为,整个表单被重建。

我尝试将事件属性设置为“更改”,并且效果很好但是为了触发“更改”事件,我需要从文本字段中单击 - 所以从 UI 的角度来看,我不能指望用户点击离开字段以显示结果。

我不确定是否可以通过 AHAH 实现我想要的,这很好,但如果可能的话,我想坚持下去。

如果需要,很乐意提供代码,如果不清楚,很抱歉,很难解释。

谢谢史蒂夫

0 投票
2 回答
1776 浏览

api - Drupal 7 Form Invalid foreach with tableselect 编辑 - 如何从 tableselect 中删除选定的行

我要做的是使用表单 API 创建一个选择列表,用户可以在其中选择行并按下删除按钮,该按钮从数据库中删除选定的行,并重新加载具有已删除选定行的配置的表。使用我当前的代码,当我点击删除按钮时,我收到此错误:

警告:为 form_execute_handlers() 中的 foreach() 提供的参数无效(C:\xampp\htdocs\amaware\includes\form.inc 的第 1431 行)。

这是代码:

任何帮助都深表感谢。

编辑:我编辑了我的 news_letter_table_form 以阅读:

新的输出让我对如何识别选定的行并从数据库中删除它们感到困惑。使用上面的 newsletter_table_form_delete 我得到以下输出:

  1. 如果我选择第一行没有任何反应
  2. 如果我选择第二行输出为 1
  3. 如果我选择第三行,则输出为 2,依此类推
  4. 如果我选择多行,则输出是所选行的无序 html 列表。

我现在很好奇如何获取我现在拥有的内容并对其进行更改,以便我可以从数据库中删除选定的行。

再次感谢!

0 投票
1 回答
6932 浏览

drupal-7 - Drupal 7 - 从表单 API 中的 DB 填充下拉选择

我对 PHP 还是很陌生,甚至对 Drupal 的 Form API 也很陌生。我只是想从数据库中填充下拉选择。我认为这个问题源于我对如何使用多维数组缺乏深入的了解。真诚感谢任何帮助。

我的代码目前是:

这会返回一个填充列表,但会以粗体显示年份 ID 以及年份(例如 2008 年)。

如何让下拉菜单仅显示年份,而不是粗体显示年份 ID,然后显示年份。似乎 $option 只是比我想要的高一个级别?如果这有意义吗?

提前谢谢了。

0 投票
2 回答
2322 浏览

drupal - 在drupal 7中更改表单元素的“必需”属性

我有一些某种形式的需要字段,我希望它们在某个地方需要,而在另一个地方不需要(我想要它们,也许你建议我在 cck 中使用存在字段,但这个字段不在 cck 中。)我使用了 profile2 模块对于某些配置文件类型,我希望在配置文件类型编辑页面中作为示例name字段是必需的,并且在用户注册name字段中不需要。我尝试在表单更改中更改字段的#require属性name,它已正确更改,但在验证中告诉我该name字段是必需的。

任何的想法 ?

0 投票
1 回答
4035 浏览

module - 使用 drupal_write_record 将提交的表单内容插入数据库

可能重复:
使用 drupal_write_record 将提交的表单内容插入数据库

我是drupal的新手,我想做的是我的第一个模块,所以希望你能理解我。我创建了一个注册模块,并想通过drupal_write_record将其连接到数据库,但我不知道该怎么做。我从drupal网站上阅读了如何使用这种方法,但仍然无法做到。

你能帮我解决这个问题吗?

这是我的模块的样子:

使用这种方法,但不是我需要的:

My_module.install 文件:

出了什么问题以及如何解决?

0 投票
1 回答
8028 浏览

jquery - Drupal 7:在表单 API 中从外部触发 AJAX 回调

简而言之:

我正在尝试通过 jQuery 触发外部事件,从而导致 Drupal 表单上的 AJAX 回调被执行。这将重建几个链式元素。它工作一次,然后中断,直到表单被 Drupal 中的不同元素刷新。

form_state 在第一次尝试时检测到正确的元素作为触发元素,但之后默认为 form_state['buttons'] 数组中的第一个可用按钮。有什么想法吗?

详细地:

我有一个复杂的 Drupal 表单,如下所示:

一个(下拉)

B(实际上是B_key和B_literal,2个文本字段)C(下拉)D(下拉)E(下拉)

其中A刷新B,B刷新C,C刷新D,以此类推。除了 B 之外,这些都是下拉元素。每个项目都是一个 key => value 对,我们使用 key 来重建它刷新的元素中的选项。因此,B 的键刷新了 C 中的选项,因为 C 的键用于 D 的选项。

这些完全构建为 Drupal AJAX 回调,并且可以正常工作。但是,B 不是选择,而是 2 个单独的文本字段,1 个是键,1 个是文字。我们这样做是为了对 B 进行 AJAX 自动完成查找,因为列表太大而无法使用选择元素。

我编写了一个外部 jQuery 脚本来执行此查找,并填充这两个字段(B_key 和 B_literal)。一旦我们填充它们,我们就会触发一个自定义事件,由字段的 'ajax' => 'event' => 'hs_changed' 引用,我们在 jQuery 中使用 jQuery('[name=b_literal]').trigger 手动触发该事件()。这在我第一次执行此操作时有效,导致 C 使用一组新选项进行重建。

但是,一旦这种情况发生一次,它就不再重建。我追踪了 form_state,并注意到当为 B 选择一个新值时,表单状态认为一个按钮已被单击(以 form_state['buttons'] 数组中的第一个按钮为准),导致此操作失败。

现在,当我重新加载 A 时,这通常具有 B 的预设值,因此所有子字段(B、C、D、E)都会正确刷新。一旦发生这种情况,我可以再次手动选择 B,它会像以前写的那样工作,如果我们再试一次就会失败。应该注意的是,我的 jQuery 没有绑定问题,因为它仍然能够找到 B 的字段,并更新了值。它手动触发自定义事件(触发drupal字段的ajax),在我们第一次触发后每次都会失败。

这是我们的代码:

表格:

回调:

jQuery:

我已经简化了一切,因为有很多逻辑超出了这个问题的范围。自动完成不是问题。触发 b_literal 字段附加的 Drupal AJAX 激活,导致刷新 c、d 和 e,在第一次之后不起作用,除非我们点击字段 a,它通过 Drupal 的 Form API 在内部刷新了 b、c、d 和 e AJAX 逻辑。

Form_state(第一次正确执行):

[triggering_element] => 数组 ( [#type] => 文本字段 [#title] => B [#description] => [#default_value] => [#size] => 32 [#maxlength] => 255 [#required ] => 1 [#disabled] => [#ajax] => 数组 ( [callback] => b_ajax_callback [method] => replace [effect] => fade [event] => hs_changed )

Form_state (第二次不正确执行,之后每次):

0 投票
1 回答
518 浏览

drupal-7 - 使用表单更改添加的 Drupal 按钮导致 common.inc 中的致命错误

我在 Drupal 7 中使用表单更改向节点表单添加另一个按钮:

我已添加$form_state['rebuild'] = TRUE;以在按下按钮时保留表单值。我第一次按下这个按钮,第二次按下我的自定义按钮,它给了我以下错误:

然后当我重新加载页面时, drupal_set_message() 报告以下内容:

如果我取出$form_state['rebuild'] = TRUE;,错误就会消失。但是随后表单值不会被保留。有什么想法可以在不遇到此错误的情况下保留表单值吗?

0 投票
2 回答
458 浏览

drupal - Drupal 7 - 表单 API 自定义模块

我有一个计算两个值的表单,表单工作得很好,但是我在弄清楚如何计算这两个值并将答案作为呈现的 HTML 返回时遇到了一些问题,所以我可以将它的样式设置得漂亮漂亮,让用户看到.

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