Пагинация при обновлении через Jquery.Ajax
Добрый день.
Уважаемые опытные коллеги, нужна Ваша помощь.
На сайте выводятся ресурсы через pdoPage.
В самом простом случае вот так
Тоесть если мы в атрибуте ссылки передали значение show_price_down то по указанным в массиве параметрам запускаем сниппет pdoPage и получаем результат его работы в переменную res, затем заменяем содержимое div#result этим содержимым.
Все работает чудесно, но не могу придумать как быть с пагинацией.
Если вызывать плейсхолдер [[!+page.nav]] вне div#result то данные обновятся а пагинация нет. Тоесть если количество элементов уменьшится при отборе, количество страниц в пагинации останется как и было.
Логично что если внести пагинацию внутрь div#result то она просто исчезнет при первой же отработке ajax поскольку ее нет в переменной res.
Очень буду признателен за совет, как в таком случае получить динамически изменяющуюся пагинацию.
Спасибо!
Уважаемые опытные коллеги, нужна Ваша помощь.
На сайте выводятся ресурсы через pdoPage.
В самом простом случае вот так
<div id="result">
[[!pdoPage?
&parents=`[[*id]]`
&sortby=`Data.price`
&sortdir=`desc`
&element=`msProducts`
&limit=`1`
]]
[[!+page.nav]]
</div>
Выборка того что вывести происходит через передачу данных через Jquery.ajax в снипет, где происходит обработка.// обработка ссылок если они служат для аякс загрузки
$('.ajax_link').click(function() {
var action = $(this).data('action');
var id_resource = $(this).data('id');
alert('Action '+action);
$.post(document.location.href, {action: action, id_resource: id_resource}, function(data) {
$('#result').html(data);
})
return false;
})
На странице вставлен снипет, вот его фрагмент//******************************************************************************
case 'show_price_down': // показ товаров по цене от большей к меньшей
$params['element'] = 'msProducts';
$params['parents'] = $id;
$params['sortby'] = 'Data.price';
$params['sortdir'] = 'DESC';
$params['limit'] = 1;
$res = $modx->runSnippet('pdoPage', $params);
if ($res=='') {$res="Ничего не найдено";}
break;
Тоесть если мы в атрибуте ссылки передали значение show_price_down то по указанным в массиве параметрам запускаем сниппет pdoPage и получаем результат его работы в переменную res, затем заменяем содержимое div#result этим содержимым.
Все работает чудесно, но не могу придумать как быть с пагинацией.
Если вызывать плейсхолдер [[!+page.nav]] вне div#result то данные обновятся а пагинация нет. Тоесть если количество элементов уменьшится при отборе, количество страниц в пагинации останется как и было.
Логично что если внести пагинацию внутрь div#result то она просто исчезнет при первой же отработке ajax поскольку ее нет в переменной res.
Очень буду признателен за совет, как в таком случае получить динамически изменяющуюся пагинацию.
Спасибо!
Комментарии: 2
Для себя я эту задачу решил, но настолько «некрасиво», что пока и не буду говорить как)
Может доработаю и напишу.
Может доработаю и напишу.
Поспешил я с позитивными выводами) так что все еще буду рад любым мыслям и идеям.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.