栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用AJAX嵌入视图

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用AJAX嵌入视图

好的,所以我找到了答案。

现在从常规的ajax回调中加载视图,而不是从我自己的回调中加载视图。

在我的页面上,创建视图对象,并将配置添加到Drupal.settings。

$view = views_get_view('taxonomy_term');$view->set_display('page');$view->set_use_ajax(TRUE);$view->set_arguments(array($tid));$settings = array(  'views' => array(    'ajax_path' => url('views/ajax'),    'ajaxViews' => array(      array(        'view_name' => $view->name,        'view_display_id' => $view->current_display,        'view_args' => check_plain(implode('/', $view->args)),        'view_path' => check_plain($_GET['q']),        'view_base_path' => $view->get_path(),        'view_dom_id' => 1,        'pager_element' => $view->pager['element'],      ),    ),  ),);drupal_add_js($settings, 'setting');views_add_js('ajax_view');

然后加载我的js,这会将当前过滤器从location.hash添加到设置中。最后,加载视图。

var data = {};// Add view settings to the data.for (var key in Drupal.settings.views.ajaxViews[0]) {  data[key] = Drupal.settings.views.ajaxViews[0][key];}// Get the params from the hash.if (location.hash) {  var q = depreURIComponent(location.hash.substr(1));  var o = {'f':function(v){return unescape(v).replace(/+/g,' ');}};  $.each(q.match(/^??(.*)$/)[1].split('&'), function(i,p) {    p = p.split('=');    p[1] = o.f(p[1]);    data[p[0]] = data[p[0]]?((data[p[0]] instanceof Array)?(data[p[0]].push(p[1]),data[p[0]]):[data[p[0]],p[1]]):p[1];  });}$.ajax({  url: Drupal.settings.views.ajax_path,  type: 'GET',  data: data,  success: function(response) {    var viewDiv = '.view-dom-id-' + data.view_dom_id;    $('#content > div.limiter').html(response.display);    // Call all callbacks.    if (response.__callbacks) {      $.each(response.__callbacks, function(i, callback) {        eval(callback)(viewDiv, response);      });    }  },  error: function(xhr) {    $('#content > div.limiter').html('<p id="artist-load-error">Error text.</p>');    $('#block-request-0').hide();  },  dataType: 'json'});

这样,视图将通过常规流加载,并且一切都按预期运行=)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/449118.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号