【问题标题】:Update Drupal views argument via AJAX通过 AJAX 更新 Drupal 视图参数
【发布时间】:2009-10-19 16:37:32
【问题描述】:

我有一个关于 Drupal 6.x 的请求 我想要这种行为:

假设有 2 列,左侧是节点列表(例如仅标题),右侧是仅显示左侧内容之一的视图。 我的想法是使用 AJAX 方式来实现这一点:单击左侧列表中的链接会使用实际节点更新右侧的视图。

处理这个问题的最佳方法是什么?

我的想法是使用面板,制作具有 2 个视图的 2 列面板,一个(左侧)按内容类型过滤,不带参数,右侧一个以要显示的节点 ID 作为参数。

但是如何用 AJAX 链接这 2 个视图呢? (或者,更好的是,如何使用 AJAX 调用更新右侧的视图?) 这可能吗?

非常欢迎任何帮助或想法 谢谢!

干杯 毛罗

【问题讨论】:

    标签: ajax drupal drupal-6 drupal-views


    【解决方案1】:

    您还可以进行快速 hack,这非常灵活,因为它允许您在不更改代码的情况下更改视图。

    我最近有一个类似的任务,对于你的任务,我会做以下事情:

    1. 为您的右列创建一个公开的过滤器(节点 ID)并使用 CSS 隐藏整个公开的过滤器表单。
    2. 使用 jQuery,将单击行为附加到左列的标题。
    3. 点击行为获取节点id,在右列找到附加的暴露过滤器,将节点id输入到输入字段并执行表单的.submit()。

    .submit() 触发内置视图以及调试良好的 ajax 请求,刷新您的右列。

    【讨论】:

    • 这正是我想出的。工作!
    【解决方案2】:

    这当然是可能的,而且不是很难做到。

    您的任务可以分为两个主要部分:

    1. 在后端提供一个“回调”URL,该 URL 采用节点 ID (nid) 并返回标记以在右侧面板中以 javascript 可以处理的格式显示节点。这将在 PHP 中的一个普通 Drupal 模块中完成。重点不是像往常一样返回完整的 Drupal 页面,而只是返回节点的标记。
    2. 为前端创建逻辑,当通过单击左侧面板中的链接触发时,通过上面的 URL 回调检索新节点标记并用它替换右侧面板的内容。这需要在 javascript 中完成,使用带有 jQ​​uery 的 Drupal javascript API。

    您可以找到introduction and example for AJAX in Drupal here.(这几乎完全符合您的要求,仅适用于图像)

    你也应该多看看这个general entry point for JavaScript in Drupal

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多