у стандартного компонента есть кнопки с перезагрузкой страницы, а я отправляю ajax запрос и в URL указываю http://localhost/services/razdel1/?PAGEN_1=2 Стало быть должен получить полную страницу штмля, как разобрать и точнее выбрать из страницы только нужный блок с отзывами
<div class="reviews_list"> </div>
как вариант думаю применить технологию в ответе от сервера xhttp.responseXML; то есть перебрать все теги и выбрать нужные. На сколько правильно выбрал подход.Может есть уже готовый компонент с ajax пагинацией для битрикс.Спасибо
вот код js
Код
<ht ml>
<head>
<sc ript type='text/javascript'>
function start(){
xhttp=new XMLHttpRequest();
xhttp.on readystatechange=function(){
if (xhttp.readyState==4 && xhttp.status==200){
var r=xhttp.responseXML;
document.getElementById('ajax').innerHTML='Содержимое первого тэга name в XML файле: '+r.getElementsByTagName('name')[0].childNodes[0].nodeValue;
var dep=r.getElementsByTagName('dept');
var cont='Содержимое всех тэгов dept (долг) в XML файле: <br />';
for (var i=0;i<dep.length;i++){
cont+=(i+1)+'. '+dep[i].childNodes[0].nodeValue+' руб.<br />';
}
document.getElementById('ajax1').innerHTML=cont;
}
}
xhttp.open('GET','test.xml',true);
xhttp.send();
}
</sc ript>
</head>
<body>
<b><p id='ajax'>Нажмите на кнопку ниже, чтобы послать запрос серверу с помощью AJAX. </p>
<p id='ajax1'></p></b>
<input type='button' value='Послать запрос' on click='start()'/>
</body>
</html>
Пусть урл запроса будет из иметь дополнительный параметр "isAxaj=Y" или возможно чекать
Код
if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest'){
}
В нужном месте вставляете
Код
$APPLICATION->RestartBuffer();
И после получения нужного куска
Код
die();
Также возможно потребуется чуток допилить настройки компонента, если используются кеши. В принцпипе, предпочитаю получать json, а не html, и его разбирать.
Если кому то пригодится, то удалось найти решение с помощью xhttp.responseText;
далее разбор текста происходил так
Код
//так как нужно второе вхождение этой подстроки
//укорачиваем строку
str1 = xhttp.responseText;
str2 = str1.substr(10000, str1.length);
//console.log(str2);
var reg = /<div.* class="reviews_list">([\s\S]{1385})/;
var res = reg.exec(str2);