使用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 拉取两种不同的视图