使用ajax将参数发送到drupal视图

Posted

技术标签:

【中文标题】使用ajax将参数发送到drupal视图【英文标题】:send arguments to drupal view with ajax 【发布时间】:2011-12-14 20:30:09 【问题描述】:

我有一个带有一些过滤器的 ajax 视图块。我想用 javascript 从外部更新视图的过滤器。

如何在不刷新页面的情况下从块外部向视图发送参数?

【问题讨论】:

您是否正在使用诸如“domain.com/page.php?id=1&comment=2”之类的 URL 标志并且您想使用 AJAX 来更新这些变量?你是否在使用任何 JavaScript 框架,例如 jQuery、YUI 或 Dojo? 我在这个网站上工作:d6d7.joergpfeiffer.de 我想用 javascript 函数更改地图上方的下拉菜单“有分类术语”。我从地图块外部调用的 javascript 函数。 【参考方案1】:

来自Views Hacks 的自动提交子模块在这里可能非常有用。我经常使用它。您可以随时设置它,然后从外部触发,即使只是通过 JS 引起点击。

【讨论】:

【参考方案2】:

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

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);

);

【讨论】:

以上是关于使用ajax将参数发送到drupal视图的主要内容,如果未能解决你的问题,请参考以下文章

Drupal Ajax Form Ajax Form 拉取两种不同的视图

使用 nid 参数在 Drupal 视图中为每个节点加载 Ajax

数据中的Ajax传递参数发送到php

jQuery ajax url 参数 drupal 服务器

使用ajax将drupal视图加载到右边距

用ajax发送参数