Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过AJAX更新Drupal视图参数_Ajax_Drupal_Drupal 6_Drupal Views - Fatal编程技术网

通过AJAX更新Drupal视图参数

通过AJAX更新Drupal视图参数,ajax,drupal,drupal-6,drupal-views,Ajax,Drupal,Drupal 6,Drupal Views,我有一个关于Drupal 6.x的请求 我希望有这样的行为: 假设有两列,左侧是节点列表(例如仅标题),右侧是仅显示左侧内容之一的视图。 我的想法是通过AJAX方式实现这一点:单击左侧列表中的链接,使用实际节点更新右侧的视图 处理这个问题的最佳方法是什么 我的想法是使用面板,使两列面板具有两个视图,一个(左侧)根据内容类型进行过滤,不带参数,另一个位于右侧,将要显示的节点id作为参数 但是如何用AJAX链接这两个视图呢? (或者,更好的方法是,如何使用AJAX调用更新右侧的视图?) 这可能吗 任

我有一个关于Drupal 6.x的请求 我希望有这样的行为:

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

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

我的想法是使用面板,使两列面板具有两个视图,一个(左侧)根据内容类型进行过滤,不带参数,另一个位于右侧,将要显示的节点id作为参数

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

任何帮助或想法都是非常受欢迎的 谢谢

干杯
毛罗

这当然是有可能的,但也不是很难做到

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

  • 在后端提供一个“回调”URL,该URL采用节点id(nid)并返回标记,以javascript可以处理的格式在右侧面板中显示节点。这将在普通Drupal模块中的PHP中完成。主要的一点不是像往常一样返回完整的Drupal页面,而是只返回节点的标记
  • 为前端创建逻辑,当通过单击左面板中的链接触发时,该逻辑通过上面的URL回调检索新节点标记,并用它替换右面板的内容。这需要在javascript中完成,使用DrupalJavaScriptAPI和jQuery
  • 您可以找到一个(这几乎完全是您想要做的,仅限于图像)


    您还应该进一步了解这一点。

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

    我最近有一个类似的任务,对于您的任务,我将执行以下操作:

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

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

    这正是我想到的。工作