以编程方式更新附加到从属字段的ajax回调上的CCK列表允许值

时间:2014-06-02 15:45:04

标签: drupal drupal-7 cck form-api

嗨,我真的很难过。我一直试图让它工作一段时间,并且刚刚将我的大部分头发拉出来!...

我有一个CCK列表(文本)选择字段,其中使用ajax根据另一个字段的值填充选项。问题是,我没有为选择字段设置任何“允许值”,因为它们在表单完成期间以编程方式填充。这会导致以下问题:

  1. 即使列表元素设置为“无限制”
  2. ,也只能选择1个值
  3. 保存表格会导致非法选择错误
  4. 编辑表单不会设置默认值
  5. 我理解为什么大部分都会发生这种情况,而不是如何以干净的方式解决这个问题。 我已尝试在ajax调用期间更新字段允许的值,但我得到“列表字段___,现有数据不能更改其键。”

    由于

    CCK List populate programmatically

1 个答案:

答案 0 :(得分:0)

好的,我设法让这个工作.. 我所获得的是基于包含ajax回调的另一字段的值来动态更新现有CCK字段的选择列表值,以用更新的值重新呈现CCK字段。

现在,如果使用表单API从头开始创建表单/元素,这将是一块蛋糕,但有时在使用实体和现有字段时,这不是一个选项。

简而言之,我做了以下事情:

  1. 更新字段设置以使用allowed_values_function
  2. 实现自定义功能以填充CCK字段列表
  3. 使用get / set_variable在ajax调用之间存储允许的值
  4. 使用hook_field_attach_validate删除任何非法选择。'核心list.module
  5. 产生的错误
相关问题