5

Drupal 的 CCK 具有方便的功能,允许单个 CCK 字段通过“添加另一个项目”按钮接受多个值,该按钮导致节点中的数据数组。

我想知道是否有任何简单的方法可以将其调整为我将调用的非 CCK 表单drupal_get_form。我宁愿不必用多步形式技术重新发明轮子。

有人做过吗?

4

3 回答 3

6

如果他们包含一个更精简的示例,那就太好了,但是这篇 Drupal 中的 AHAH 简介,以及这篇关于使用 AHAH 添加动态表单元素的帖子应该涵盖了您需要的几乎所有内容(不幸的是,这相当多)。

CCK 这样做的方式(主要在content_add_more_js()content.node_form.inc 中)有点复杂,因为它们需要满足不同字段类型的泛化,以及添加一些额外的东西来实现平滑的 tablesort 拖放功能。因此,除非您需要后者,否则我宁愿不使用它作为示例,因为它有点令人困惑;)

于 2009-12-03T23:43:13.557 回答
3

http://plosquare.blogspot.com/2010/02/drupal-6-adding-form-fields-dynamically.html

于 2010-06-08T18:27:23.850 回答
2

只是一个答案,对不起。如果没有其他人会给您更好的答案并且我有时间,明天我将详细说明。

我相信功能是通过将 Drupal 行为(来自 Drupal 标准 js 库)附加到您正在考虑的字段来完成的。如果我错了,那么它只是一个“临时”jQuery 函数。

然而,这是容易的部分!;) 棘手的是,该功能是通过 AJAX 实现的,而不是通过简单地在客户端生成一个额外的表单字段。这是因为表单 API 必须完全重新生成表单,否则 - 在提交时 - 最初未发送到浏览器的附加字段将被简单地忽略(这是为了防止注入)。

HTH 至少有一点!抱歉这么简洁。

于 2009-12-02T23:38:16.703 回答