//JS
$('body').delegate('.modern-page-navigation a','click',function(){
if($(this).hasClass('modern-page-current')) return false;
var val = $(this).attr('href');
val = val.split('?');
load_knowledge(val[1]);
return false;
});
function load_knowledge(get){
var val = $('#form-filter__name').val();
var count = $('#form-filter__num').val();
var section = $('#form-filter__section').val();
var tag = $('#form-filter__tag').val();
var data = {};
data['val'] = val;
data['count'] = count;
data['section'] = section;
data['tag'] = tag;
$.ajax({
url: '/apps/suz/ajax.php',
type: 'POST',
dataType: 'html',
data: {
'ajax': 'load_knowledge',
'data': data,
'url': location.pathname,
'get': get
},
success: function(response){
console.info(response);
$('.knowledge_block_list').html(response);
}
});
}
//PHP
if(strlen($_POST['get'])>0) $get = explode("&",$_POST['get']);
foreach($get as $getI){
$getI = explode("=",$getI);
$_GET[$getI[0]] = $getI[1];
}
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php");
if(!CModule::IncludeModule('iblock')) die('error');
CPageOption::SetOptionString("main", "nav_page_in_session", "N");
require_once($_SERVER['DOCUMENT_ROOT'].'/apps/suz/prolog.php');
getlist...
Пагинация на ajax bitrix
Для того, чтобы реализовать пагинацию на аяксе, достаточно передавать параметры из ссылок, которые генерируются с помощью $pag = $res->GetPageNavStringEx($navComponentObject, "", 'modern'); в аякс. В аяксе уже обрабатываем строку, передавая параметры в $_GET ДО вызова пролога, чтобы они были съедены гетлистом. А также делательно установить параметр nav_page_in_session: CPageOption::SetOptionString("main", "nav_page_in_session", "N"); . Дальше GetList сам все сделает.