Ошибка динамической подгрузки контента через ajax
Добрый день! Есть небольшая проблема, написал код по исходным примерам, переправил его под себя. В итоге получилось следующее:
<div id="results">
[[!pdoPage?
&element=`msProducts`
&parents=`17`
&includeThumbs=`200x230`
&limit=`16`
&includeTVs=`count_flow,heightTV,persent_discount,lenghtTV`
&tvPrefix=`tv.`
&showHidden=`1`
]]
</div>
<div class="clear"></div>
[[!+page.nav]]
<center>
<button class="load_more btn-more" data-page="1" style="margin-top: 50px;">Показать ещё</button>
</center>В скриптах пишу следующее:
<script type="text/javascript">
$(document).ready(function() {
$('.load_more').click(function(){
var data = $(this).data();
var pages_count = $('.paginator li').length;
console.log(pages_count);
if(pages_count == data.page){
$('.load_more').hide()
}
data.page+=1;
console.log(data);
// dont touch
$('#results').append('<div class=loaded'+data.page+'></div>');
$('.loaded'+data.page).load('тестовая-страница-ajax-подгрузки/?page='+data.page+' #results');
});
});
</script>Ситуация получается следующая изначально выводится 16 товаров, затем когда нажимаем на кнопку подгрузки, загружаются еще те же шестнадцать товаров и соответственно это может продолжаться сколь угодно долго. Еще один нюанс, что паггинация вроде подключена конструкцией [[!+page.nav]], он она не выводится. Что я делаю не так?
Техническая поддержка MODX
Сайт лежит, тормозит или остался без разработчика?
Переезд с MODX 2 на 3, PHP 7 на 8, скорость и безопасность. Поддержка со сроками и ответственностью, а не совет в чате.
Подробнее
Реклама
Комментарии: 4
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Я решил ее гораздо короче и оптимальнее, тоже с использованием pdoPage.
Решение ситуации было такое, немного поправив код получил следующее:
Немного поясню что тут происходит в коде. По клику на кнопку класса .load_more получаем текущую страницу, если число страниц равно общему количеству, то кнопку скрываем. Далее идет приращение значения страницы текущей.
В блок results подгружаем данные.
В hmtl коде выводим pdoPage, где limit — это число записей выводимых за раз. Стандартную паггинацию [[!+page.nav]] оборачиваем в невидимый блок. После чего все это дело работает. Компактный и быстрый код.
Самое важное в ссылке это новость об &ajax=`1` в pdoPage. А дальше каждый крутится как хочет.