2009-10-19 143 views
4

意见的说法我有一个关于Drupal的6.x的 的请求,我想有这样的行为:更新的Drupal通过AJAX

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

这是处理的最佳方式?

我的想法是使用面板,使2列面板与2次,一个(左)上过滤内容类型,不带参数,和一个在其上发生在作为参数的节点ID的权利要被显示。

但是如何连接与AJAX的2次? (或者更好的,如何通过AJAX调用更新右侧的视图?) 是可能的吗?

任何帮助或想法真的欢迎 谢谢!

干杯 莫罗

回答

2

这当然是可能的,而且也不是很困难的事。

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

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

你可以找到一个introduction and example for AJAX in Drupal here.(这确实几乎正是你想做的事,只能用图像)

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

3

你也可以做一个快速的黑客,这是相当灵活的,因为它可以让你改变你的观点不改变代码。

最近我有一个类似的任务,并为你的任务,我会做到以下几点:

  1. 你的右列,创建一个过滤器曝光(节点ID),并使用CSS隐藏整个暴露过滤器的形式。
  2. 使用jQuery,将点击行为附加到左列的标题。
  3. 点击行为花费的节点ID,发现附着露出滤波器在右列中,进入节点ID输入到输入字段,并且执行形式的.submit()。

.submit()触发build-into-views调试好的ajax请求,刷新右列。

+0

这就是我想到的。加工! – 2009-11-12 11:06:48