【问题标题】:How to disable the output of a field depending on the return from another field?如何根据另一个字段的返回禁用字段的输出?
【发布时间】:2011-01-27 23:23:05
【问题描述】:

在我看来,我宁愿根据另一个字段的值隐藏某些字段。我正在寻找在代码中执行此操作的方法,或者以其他方式但不启用 php 过滤器。

【问题讨论】:

    标签: drupal drupal-views


    【解决方案1】:

    我不知道您使用的是哪个版本的视图。我不太记得在 V2 中是否可以使用输出重写,但我想是的。在 V3 中,它就在那里,等待您使用。

    输出重写接受任何 HTML 代码,您可以使用查询返回的内容进行替换。我不确定你是否可以在那里使用 PHP,也许你可以,但我从未真正尝试过。无论如何,假设您有field_foofield_bar,它们都是一些选择选项或复选框或其他多项选择,在数据库中有键值对(如 1|foo、2|bar 等) .

    在这种情况下,您应该有四个可用的选项:

    [field_foo_value]
    [field_foo_value_raw]
    [field_bar_value]
    [field_bar_value_raw]
    

    (它们的命名可能会有所不同,我不太记得确切的命名约定)。您可以像这样重写“bar”字段输出:

    <span class="visibility-[field_foo_value_raw]">[field_bar_value]</span>
    

    然后,假设“foo”的可能键是 1 和 2,您可以编写一些 CSS:

    span.visibility-1 { display: inline; }
    span.visibility-2 { display: none; }
    

    如果允许使用 PHP,应该会更容易,但我感觉你只能使用 HTML。无论如何,我希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      使用hook_form_alterhook_form_FORM_ID_alter 您可以更改views_exposed_form 表单。从那里,it should be possible 使用 CTools' Dependent 来设置字段之间的可见性依赖关系。 Views 暴露的表单布局部分在主题层中处理(请参阅views-exposed-form.tpl.php),因此可能需要做更多的工作来隐藏/显示标签。

      【讨论】:

      • 我不想对暴露的过滤器做任何事情。但是既然你提到了,表单应该在模块级别处理,只将主题留给主题级别:)
      • 如果你没有弄乱views_exposed_form,那么CTools的Dependent应该很容易使用;)。
      【解决方案3】:

      这个模块接缝就像它会做你需要的。我已经使用过它,它易于设置且使用快速。

      http://drupal.org/project/conditional_fields

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-11-22
        • 1970-01-01
        • 2010-10-05
        • 1970-01-01
        • 2018-04-22
        • 1970-01-01
        • 2021-11-04
        相关资源
        最近更新 更多