问题标签 [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 回答
1275 浏览

drupal - Drupal Form API:根据数据库值创建表单元素(动态表单创建)

我正在创建一个表单,我必须根据数据库中的值(X 个元素、每个元素的属性等)填充“X”表单元素(具体的文本字段)。有没有办法使用 Drupal Form API 来做到这一点,或者我应该从其他地方开始。我尝试在表单生成函数中使用 for() 循环,但这不起作用。请发布您的建议和任何相关链接。

0 投票
1 回答
1420 浏览

php - Drupal Form API - 从数据库填充字段

我希望用数据库中的记录填充 drupal 表单 api 字段。

和:

它返回数组。

我觉得答案是一个 foreach 循环。

非常感谢任何帮助。

0 投票
2 回答
227 浏览

java - WindowsFormApplications 的全局热键

当用户单击特定按钮时,如何执行功能?例如,当我想计算时,用户在写入过程中会按多少次“A”按钮(或 Ctrl+C 组合)。
我的应用程序应该在后台运行。

0 投票
2 回答
6589 浏览

drupal - 为什么我不能将字段移动到 Drupal 表单中的字段集中 - 无法获取当前值

我在 Drupal 7 中有一个节点表单,为了为用户简化它,我想使用垂直选项卡功能将它分成几个部分。

使用 hook_form_FORMID_alter() 我可以毫无困难地移动字段。保存节点后,它会正确写入值,并且它们会出现在节点视图中。

但是当我重新编辑节点时,未设置移动字段的任何值,因此我实际上丢失了数据。我尝试了各种选项,包括更改 form_state['fields'][field][langcode] 中的 array_parents 值。

(我想知道在 pre_render 期间移动字段是否会更好。)

有任何想法吗?

0 投票
1 回答
294 浏览

drupal - Drupal 5 表单(表单 API)的所见即所得 mo 编辑器:如何为多个文本区域启用它?

我正在尝试使用具有两个文本区域的 Drupal 5 表单 API 创建一个表单,这两个文本区域都应该启用所见即所得的编辑器以允许 HTML 格式的输入。但是,只有第二个文本区域启用了编辑器,另一个显示“输入格式选择器”,但不显示编辑器控件。我在 TinyMCE 3.3.9.3 和 3.3.9.4b 和 CKEditor 3.5.1.6398 都使用所见即所得模块集成进行了尝试,两种情况下的结果是相同的。

在这个相关问题中,提到可能存在相同 ID 的问题。我不知道如何将此解决方案转移到 Drupal 表单 API,因为我给了两个字段不同的名称。在生成的 HTML 中,它们具有基于我分配的 Drupal 名称的单独 HTML id。

我用来创建文本区域的代码如下:

谢谢!

艾伦

0 投票
1 回答
8028 浏览

drupal-6 - drupal 表单 api 复选框

我正在使用 drupal form api 并使用复选框。我在默认检查值中遇到问题。以下是代码片段...

但默认情况下不检查值...任何人都可以帮助我缺少什么?

谢谢

0 投票
2 回答
38219 浏览

dynamic - Drupal 7:Drupal 7 中动态选择列表的最佳实践

Drupal 7 中动态选择列表的最佳实践是什么?

  1. 通过 UI 创建一个带有虚拟选项的字段,并使用hook_form_FORM_ID_alter

或者

  1. 通过自定义模块从头开始创建动态选择列表hook_form

或者

  1. 不同的方法?

谢谢

0 投票
2 回答
5983 浏览

php - 为什么我的 drupal 表单提交函数没有被调用?

呃,这可能很简单,但它让我发疯。我有一个简单的表单(只是一个提交按钮),我使用 hook_nodeapi() 将其插入到节点中。它被正确插入,当我提交时页面会刷新,但它永远不会点击 form_submit() 函数。这是代码:

我试过在提交函数中添加一个 echo 和 die() ,它肯定不会被调用。我也尝试过放弃 $form['#submit'] 声明,因为默认值应该处理它,但无济于事。我知道我一定错过了一些愚蠢的东西。有任何想法吗?

此外,看起来很奇怪的一件事是表单使用以下标记呈现:

这正常吗,将“-1”附加到表单ID?

0 投票
1 回答
4409 浏览

php - 使用 Ctools 在 Drupal 中加载 Ajax 中断

我正在使用 CTools ajax 和表单开发自定义模块。我尝试将此示例此处的示例结合起来。它是这样的:用户从其中一个单选按钮中进行选择,提交时,美国+加拿大的地图将加载到带有地图的另一个页面的链接。根据他们的选择,加载所选国家的地图。最后一步是我得到 ajax 加载错误的地方。没有js可以正常工作。

我的代码如下所示:

国家-map.tpl.php

地区-map.tpl.php

0 投票
2 回答
34219 浏览

drupal-7 - 如何在 Drupal 7 中禁用字段或使其只读

我正在尝试禁用几个字段并通过 hook_page_alter() 将它们设为只读。我能够检查用户是否正在查看页面编辑部分(表单编辑)

然后当我尝试禁用几个字段时,我发现选择列表可以通过以下代码禁用:

但如果我使用下面的代码它不起作用:

我还发现我不能使用相同的代码来禁用文本区域字段:

上面的代码没有禁用文本区域,但是同样的代码可以禁用选择列表!

然后我尝试 hook_form_alter() 做同样的事情,我能够禁用字段,当我从 $page 数组检查渲染数组时,我看到它显示:

但是当我在 hook_page_alter() 中设置相同的代码时,它不起作用。看起来其他东西会覆盖它,我认为 hook_page_alter() 是最后一个更改标记的地方。

知道在 drupal 7 中的 hook_page_alter() 内禁用/只读任何类型的字段的最佳方法是什么吗?

谢谢