【问题标题】:send arguments to drupal view with ajax使用ajax将参数发送到drupal视图
【发布时间】: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 函数。

标签: ajax drupal views


【解决方案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);
    
    });
    

    【讨论】:

      猜你喜欢
      • 2013-02-20
      • 1970-01-01
      • 2014-04-07
      • 1970-01-01
      • 2021-04-16
      • 1970-01-01
      • 2016-03-21
      • 2014-12-06
      • 1970-01-01
      相关资源
      最近更新 更多