4

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

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

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

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

但是如何将 2 个视图与 AJAX 联系起来?(或者,更好的是,如何使用 AJAX 调用更新右侧的视图?)这可能吗?

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

干杯毛罗

4

2 回答 2

3

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

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

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

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

于 2009-11-11T15:37:28.707 回答
2

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

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

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

您可以在此处找到 Drupal 中 AJAX 的介绍和示例。(这几乎完全符合您的要求,仅适用于图像)

您还应该查看Drupal 中这个更通用的 JavaScript 入口点

于 2009-10-20T19:18:14.027 回答