【问题标题】:Drupal 6: cck form that fetches from webservice dynamicallyDrupal 6:动态从 web 服务获取的 cck 表单
【发布时间】:2010-08-02 07:48:56
【问题描述】:

我有一个当前执行此操作的 cck 模块

  • 用户在模块设置页面输入并保存第三方网站的用户名
  • 用户添加/编辑节点
  • 当用户获取添加/编辑表单时,他们的用户名会从设置中获取,并用于获取一些数据的 api 调用,这些数据会填充表单上的选择。
  • 用户从填充的数据中选择某些内容,然后在保存时使用自定义内容创建节点。

这可行,但我希望它能够做到这一点

  • 用户添加/编辑节点,显示表单,并且一些默认数据填充上面引用的选择
  • 用户在表单的文本字段中输入他们的用户名,单击触发 api 调用的按钮,然后选择填充从 api 调用检索到的数据
  • 用户从填充的数据中选择某些内容,然后在保存时使用自定义内容创建节点。

编辑

我将尝试使用 javascript 来执行此操作,而不是让 ahah 为我处理这些事情。因此,当单击按钮时,仍然会触发 api 调用,但现在选择元素的更改完全是通过 ajax 和 dom 操作完成的。但是,当提交此表单时,我收到此友好错误。

检测到非法选择。请联系网站管理员。

据我了解,这是由于 form_state 与表单中存储的不同(我修改后的选择列表)。

我对如何规避此错误有一些想法,但我想知道是否有人对如何做到这一点有不同的想法。

我一直在使用 AHAH 来完成这项工作,但这很困难,因为我找不到与我正在尝试做的事情类似的任何示例,或者任何关于如何使用 AHAH 的解释CCK。我在 hook_elements 的 hook_process 回调中设置了 AHAH 回调,并且正在执行回调,但我认为缓存的 form_state 中的内容与屏幕上显示的内容不匹配,因为在保存/预览节点时,有除了菜单和导航之外没有显示任何内容。我已经获得了正确的信息以显示在网络表单上,但在提交时,它失败了。

对于让 AHAH 与 CCK 一起工作的正确方法以及我应该返回并执行的操作,我也有点迷茫。 (返回表单的重新生成部分?我要缓存什么?等等)

因此,是否有人建议让 ahah 回调工作的步骤,知道 ahah 使用 web 服务和/或 cck 的示例,或者有其他想法?

我希望这很清楚,并感谢您的洞察力!

【问题讨论】:

    标签: jquery forms drupal dynamic cck


    【解决方案1】:

    Drupal Pro Development 有一个关于 AHAH 的精彩章节。免费资源是DrupalSN

    但是,通过 CCK,事情会变得稍微复杂一些。

    ClientJs -> Drupal-GET -> remoteserver XML/Json/? -> Drupal -> FAPI -> Json/HTML -> Client
    

    是 AHAH 的常用调用堆栈。 AHAH 在 Drupal 中实际上命名错误,因为它只能通过 FAPI 工作。

    你会看到类似的东西:

    CCK -> FAPI -renders-> ClientJS -> Drupal-GET -> remoteserver XML/Json/? -> Drupal -> CCK-hooks(s) -> FAPI -> Client.
    

    困难的部分是使用 CCK-api 向项目添加 JS aha 调用,另一方面,让 Drupal 获取 AHAH 并通过 CCK-API 运行它以更改 FORM,而不是让Drupal 在 CCK 之外使用 FAPI(FAPI,即 Form API)渲染表单。

    【讨论】:

    • 在这种情况下,我将避免直接使用ahah。你有什么不同的方法来实现这样的表单吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-06
    相关资源
    最近更新 更多