Drupal 的 CCK 具有方便的功能,允许单个 CCK 字段通过“添加另一个项目”按钮接受多个值,该按钮导致节点中的数据数组。
我想知道是否有任何简单的方法可以将其调整为我将调用的非 CCK 表单drupal_get_form
。我宁愿不必用多步形式技术重新发明轮子。
有人做过吗?
如果他们包含一个更精简的示例,那就太好了,但是这篇 Drupal 中的 AHAH 简介,以及这篇关于使用 AHAH 添加动态表单元素的帖子应该涵盖了您需要的几乎所有内容(不幸的是,这相当多)。
CCK 这样做的方式(主要在content_add_more_js()
content.node_form.inc 中)有点复杂,因为它们需要满足不同字段类型的泛化,以及添加一些额外的东西来实现平滑的 tablesort 拖放功能。因此,除非您需要后者,否则我宁愿不使用它作为示例,因为它有点令人困惑;)
只是一个答案,对不起。如果没有其他人会给您更好的答案并且我有时间,明天我将详细说明。
我相信功能是通过将 Drupal 行为(来自 Drupal 标准 js 库)附加到您正在考虑的字段来完成的。如果我错了,那么它只是一个“临时”jQuery 函数。
然而,这是容易的部分!;) 棘手的是,该功能是通过 AJAX 实现的,而不是通过简单地在客户端生成一个额外的表单字段。这是因为表单 API 必须完全重新生成表单,否则 - 在提交时 - 最初未发送到浏览器的附加字段将被简单地忽略(这是为了防止注入)。
HTH 至少有一点!抱歉这么简洁。