通过AJAX更新Drupal视图参数

时间:2009-10-19 16:37:32

标签: ajax drupal drupal-6 drupal-views

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

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

哪种方法可以解决这个问题?

我的想法是使用Panels,2个列面板,2个视图,1个(左)过滤内容类型,没有参数,右边一个接收作为参数显示的节点id。 / p>

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

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

干杯 毛罗

2 个答案:

答案 0 :(得分:3)

你也可以做一个非常灵活的快速入侵,因为它允许你在不改变代码的情况下改变你的观点。

我最近有类似的任务,为了你的任务我会做以下事情:

  1. 为右列,创建一个公开的过滤器(节点ID)并使用CSS隐藏整个公开的过滤器表单。
  2. 使用jQuery,将点击行为附加到左栏上的标题。
  3. 点击行为获取节点ID,在右列找到附加的公开过滤器,将节点id输入到输入字段并执行表单的.submit()。
  4. .submit()触发build-into-views良好调试的ajax请求,刷新你的右列。

答案 1 :(得分:2)

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

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

  1. 在后端提供一个“回调”URL,它接受一个节点ID(nid)并返回标记,以便以javascript可以处理的格式显示右侧面板中的节点。这将在普通的Drupal模块中用PHP完成。重点是不像往常一样返回完整的Drupal页面,而只返回节点的标记。
  2. 为前端创建逻辑,当通过单击左侧面板中的链接触发时,通过上面的URL回调检索新节点标记,并用它替换右侧面板的内容。这需要在javascript中完成,使用Drupal javascript API和jQuery。
  3. 你可以找到一个introduction and example for AJAX in Drupal here.(这几乎完全是你想做的,只有图像)

    您还应该更多地考虑general entry point for JavaScript in Drupal