Для динамической подгрузки views сделал модуль и при нажатии на нужную кнопку подгружается views через:
views_embed_view('list_banks','default', $kredit_type);
return drupal_json_output(array('content'=>$viewsoutput, 'li_num'=>$num));
exit;
Увидеть можно тут http://1k.vitalavita.ru/ - верхнее меню.
Но дело в том, что в подгруженном виевсе есть раскрытый фильтр (exposed filters) с аутосабмитом (autosubmitte).
Вот этот виевс - http://1k.vitalavita.ru/bank/list , тут аутосубмит полностью работает.
Но в подгружаемый не работает аутосубмит в раскрытом фильтре - http://1k.vitalavita.ru/
Пробовал выгружать его так:
$view = views_get_view('list_banks','default', $kredit_type);
$view->override_path = 'node/2';
$viewsoutput = $view->preview();
return drupal_json_output(array('content'=>$viewsoutput, 'li_num'=>$num));
Пожалуйста, подскажите что делать?

Комментарии
никак, подгружая html структуру views + exposed filter, Вы не подгружаете нужные для функционала autosubmit скрипты.
А возможно добавить блок, на тех страницах, где это нужно, в котором указать загрузку этих скриптов и прочее, что нужно и уже когда подгружается views уже работало все?
Попробуйте embed_views
Alex554, можно, но ебаторики очень много.
Goodboy, embed_views = views_embed_view
kervi, в модуле используется embed_views_exposed_form, именно то, что нужно ТС ( http://drupal.org/node/1655014 )
Я говорю про версию 7.x-2.0
у тс через аякс подгружается html views (не важно, только exposed filter или всего views). Каким образом embed_views_exposed_form может ему помочь?
kervi, я не знаю как может помочь. Может, на мысль какую натолкнет. Просто самому интересно решение задачи.
Alex554, как простейший вариант, в php коде страницы, загрузите изначально все нужные Вам views и фильтры к ним. После, через js просто показывайте нужные Вам div.
Приступил к опытам над выводом виевса в Drupale 7, как найду выход, отпишусь.
Если у кого еще есть мысли, пишите, буду благодарен.
ничего тут страшного нет,
если речь о views_autorefresh (не принципиально) из модуля views_hacks то:
вам нужно предварительно на этой странице подключить views_hacks/views_autorefresh/views_autorefresh.js - можно это сделать сразу при загрузке страницы, а можно при необходимости воспользоваться конструкцией типа:
var views_hacks_path = '...';
$.ajax({
url: views_hacks_path + '/views_autorefresh/views_autorefresh.js',
dataType: 'script',
cache: true,
success: function(data, textStatus, jqXHR) {
// ...
}
});
затем после выполнения запроса (третий параметр $.get) и вставки возвращенного вам кода в страницу - нужно выполнить:
Drupal.attachBehaviors(context);
еще как альтернатива (может не сработать) это:
1. написать свой модуль который добавит блок (hook_block_info)
2. содержимое блока = ваш вьюс (тоже что вы возвращаете в колбеке сейчас)
3. поставить модуль ajax_blocks
4. поставить в нужное место этот блок и в его настройках включить аякс
потом в нужный вам момент из js выполняете:
Drupal.ajaxblocksSendRequest(Drupal.settings.ajaxblocks, Drupal.settings.ajaxblocks_delay);
}
и содержимое блоков обновится, но это если содержимое блока формируется без внешнего воздействия
Видать что то не догнал, это формируется через:
/sites/all/modules/ctools/js/auto-submit.js
Это Drupal 7
На странице, где это работает появляется такая строчка:
jQuery.extend(Drupal.settings, (тут другой код ) . . . . . . . . . . "views":{"ajax_path":"\u002Fviews\u002Fajax", "ajaxViews":{"views_dom_id:905cd780fce79422c54ce374f7429532":{"view_name":"list_banks", "view_display_id":"page", "view_args":"", "view_path":"bank\u002Flist", "view_base_path":"bank\u002Flist", "view_dom_id":"905cd780fce79422c54ce374f7429532", "pager_element":"0"}}}, . . . . . . . . .);