通过参数通过ajax查看视图 -- 7 领域 和 views 领域 和 ajax 领域 drupal 相关 的问题

Pass Parameters to views via Ajax


4
vote

问题

中文

在查看视图时生成的页面,如例如一个分类术语页面,有没有方法可以通过使其传递一些参数来更新生成的内容,例如新的分类项。

这将是通过ajax请求更新视图页面内容。

感谢

英文原文

While viewing a views generated page, like for instance a taxonomy term page, is there a way to update the views generated content by passing it some parameters, like for instance a new taxonomy term.

The purpose of this would be to update a view page content via an ajax request.

Thanks

        

回答列表

4
 
vote
vote
最佳答案
 

您可以轻松地执行和呈现自定义模块中的参数的视图。

我会:

1 - 设置一些JS代码以触发到服务器的Ajax调用

2 - 使用 hook_menu() 在特定URL上定义自定义菜单回调,即: /views/ajax/view_name/view_display/view_arguments

3 - 创建回调函数()

4 - 用参数加载和呈现视图:(这是来自视图2 API):

  $view = views_get_view('foobar');  // get the view named `foobar` $view->set_display('page_1');  // Set the view display you want to use $view->set_arguments(array($foo));  // Pass an array containing one or several variables you want to use as arguments in the view $result = $view->render(); // Returns HTML    

5 - 在JSON中返回结果(如果要传递比视图本身更多的信息,则在某个时候)。您可以在D7中使用 drupal_json_output()

 

You can easily execute and render a view with arguments in a custom module.

I would:

1 - Set up some JS code to trigger an AJAX call to the server

2 - Use hook_menu() to define a custom menu callback on a specific URL, ie: /views/ajax/view_name/view_display/view_arguments

3 - Create your callback function()

4 - Load and render the view with arguments: (this is From Views 2 API):

$view = views_get_view('foobar');  // get the view named `foobar` $view->set_display('page_1');  // Set the view display you want to use $view->set_arguments(array($foo));  // Pass an array containing one or several variables you want to use as arguments in the view $result = $view->render(); // Returns HTML  

5 - Return your result in JSON (practical sometime if you want to pass more information than the view itself). You can use drupal_json_output() in D7.

 
 
0
 
vote

此处是我最终使用的javascript,使用ajax加载视图块并从上下文过滤器从我在页面上创建的链接列表的href值中传递。希望这有助于某人!

  function getInfo(args) {    $.ajax({     url: Drupal.settings.basePath + 'views/ajax',     type: 'post',     data: {       view_name: 'agent_lookup',       view_display_id: 'agent_lookup_block', //your display id       view_args: args,     },     dataType: 'json',     success: function (response) {         if (response[1] !== undefined) {         var viewHtml = response[1].data;         $('#ajax-target').html(viewHtml);         //Drupal.attachBehaviors(); //check if you need this.       }      },         error: function(data) {          alert('An error occured!');         }   }); }    $('.ajax_button').once().click(function(e){     e.preventDefault();     var the_id = $(this).attr('href');     noSlashes = the_id.replace(///g,'');     getInfo(noSlashes);  });   
 

Here is the javascript I ended up using to load the views block with ajax and pass in the contextual filter from the href value of a list of links I created on page. Hope this helps someone!

function getInfo(args) {    $.ajax({     url: Drupal.settings.basePath + 'views/ajax',     type: 'post',     data: {       view_name: 'agent_lookup',       view_display_id: 'agent_lookup_block', //your display id       view_args: args,     },     dataType: 'json',     success: function (response) {         if (response[1] !== undefined) {         var viewHtml = response[1].data;         $('#ajax-target').html(viewHtml);         //Drupal.attachBehaviors(); //check if you need this.       }      },         error: function(data) {          alert('An error occured!');         }   }); }    $('.ajax_button').once().click(function(e){     e.preventDefault();     var the_id = $(this).attr('href');     noSlashes = the_id.replace(/\//g,'');     getInfo(noSlashes);  }); 
 
 

相关问题

3  有没有办法了解被视图的节点?  ( Is there a way to know the node being viewed ) 
我有一个上下文,我将一个块放到wiki页面上。无论如何,块知道Wiki页面的节点ID? 我想在块的视图中编写一些代码 - 查看 - block - field.tpl.php模板文件,以显示仅用于Wiki页面的所有者的东西。通过通过上下文将块放在Wiki的页面上,块需要它显示的节点(Wiki)页面以及节点的所...

13  在当地发展时如何提高Drupal速度  ( How to improve drupal speed when developing in localhost ) 
我正在寻找其他笨拙开发人员的秘诀,在开发时更快地制作Drupal(特别是Drupal 7) 考虑到在开发期间,您不希望缓存,因此您可以在代码PHP / CSS / JS中看到更改的结果。 (在这里看到一些答案来刷新缓存/禁用缓存永久性) "Drupal慢localhost" 的googling将提供一些提示........

80  任何方法为单页/节点添加CSS?  ( Any way to add css for a single page node ) 
我正在清理我的大疯狂风格的表格(可能与未来的问题有关),我想知道将自定义CSS添加到特定节点或页面的最佳方法。 特别是,我的工作网站的主页是面板页面,它有一堆不同的造型。现在,CSS刚刚包含在主题样式表中。 有没有办法说,"如果这是节点foo,则添加foo.css" ?是 css注射器我正在寻找什么? i 可能对其...

5  批量保存节点与文件字段  ( Bulk saving nodes with a file field ) 
我正在为笨拙网站创建批量上载函数的进度。使用Flash我能够将文件上传到应该能够处理文件的特定URL。 我想做什么,不仅仅是上传文件,而是使用保存到已使用CCK设置的文件字段的文件创建特定类型的节点。由于这些是音频文件,因此文件字段处理文件是重要的,因此可以使用GetID3模块提供其他元数据。 我看了代码/ doc,...

17  如何在有多个功能有多个功能时选择要使用的模块?  ( How do i choose which module to use when there are several options for the same ) 
它并不罕见,找到提供基本相同的功能的多个模块。例如,有许多垃圾邮件控制模块提供极为相似的功能(例如, spamicide 和)。并且有很多不同的分类模块可以做类似的事情。因此,当多个模块满足我的要求时,我应该如何选择使用哪一个? ...

16  如何在Drupal 7的一页上获得超过10个搜索结果?  ( How can i get more than 10 search results on one page in drupal 7 ) 
默认搜索页面仅显示10个结果。如何更改它以显示无限数量的结果? ...

6  从视图中重复分类分类术语  ( Duplicate taxonomy terms from view ) 
所以我尚未能够找到解决方案,而无需使用预处理函数来检查重复或仅使用"标签" 模块。很好,可以封闭。 如何配置(块)视图以显示词汇表的术语列表,每个术语显示一次(也许是指示它使用的次数的数字) - 即使术语可以由多个节点? "截然不同" 没有工作..字段'分类:所有术语'和'分类:术语'都会产生类似的重复项目,当该术...

2  在Drupal 7中缓存  ( Caching in drupal 7 ) 
如何在我对我的主题感到满意的时候设置我的drupal web以获得更好的性能,并且不会做很多新主题调整? 这些设置可能是 admin/config/development/performance 谢谢 ...

1  如何创建自定义令牌? [复制]  ( How do i create custom tokens ) 
这个问题已经在这里有答案: 关闭 9年前。 可能的重复: 以编程方式创建一个令牌 如何创建自定义令牌?此外,是否可以将令牌附加到回调函数?例如:如果我的字符串是'这是我的[名称]',我可以以...

0  如何生成一个列表,其中包含哪些空格?  ( How to generate a list of which features are enabled in which spaces ) 
我正在使用有机组,特征和空格运行一个Drupal 6.x站点,我对生成一个空格启用的空格的列表有兴趣。优选地,具有沿Y轴的空间的表,以及沿X轴的特征。 关于如何生成此的任何想法?我可以使用视图生成组空间列表,但无法找到已启用功能的字段。 ...

5  如何每次查看节点时执行操作?  ( How to perform an operation every time a node is viewed ) 
在编写模块时,我如何每次用户查看节点时执行一次操作? ...

2  可以在服务器中重命名上传的文件以避免名称碰撞?  ( Can uploaded files be renamed in the server to avoid name collision ) 
我希望我的网站托管一些图像。用户能够将图像上载为内容类型。 如果两个用户创建内容并使用完全相同的名称(MyImage.png)创建内容并上传图像,则旧图像文件是否会在服务器中覆盖(因此,两个内容条目都将最终包含相同的图像文件)? 如果是的,它是相当令人不安的。所以现在我想知道:有一个模块是否重命名上传的文件,以便它不...

4  如何使用子主题覆盖主题的Template.php的单一函数?  ( How to override single function of themes template php using sub theme ) 
目标: drupal 7子主题开发 我不想覆盖整个template.php文件。我只是想覆盖template.php文件的单一函数。 ...

5  使用数据库的良好做法  ( Good practices working with databases ) 
我正在学习drupal,我想开发一个网站,主要是它的数据库。 我已经拥有数据库的扩展实体关系模型(类型的复杂)。 在创建要由drupal使用的数据库时,采取的正确方向是什么,创建它手动,并使用php在drupal中进行查询,因为它是从头开始的php + mysql站点? Drupal是否提供了更容易的方法来做这件事?...

12  如何管理Drupal网站上的协作发展?  ( How do i manage collaborative development on a drupal site ) 
我在Drupal网站上使用另一个开发人员。我们一直在努力在没有彼此的情况下同时找到在网站的不同部分工作的好方法。我们已经尝试过在网站的同一开发实例上工作,但我们经常踩到其他人脚趾,或者用一些不好的代码延续网站,使其无法继续工作,直到它得到解决。所以我们搬到了分开的开发实例。但现在将我们的工作合并到网站的单一实例中是一...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.