Ajax пагинация - отлов ошибок
Добрый вечер!
Столкнулся с такой проблемой: не работает Ajax пагинация по кнопке. После нажатия на кнопку #pdopage приобретает свойство полупрозрачности и на этом все. В консоли видно что отправляется Get запрос, но ни ответа ни привета. Собственно вопрос, как понять в чем проблема?
Данный каллбек ничего не возвращает:
Столкнулся с такой проблемой: не работает Ajax пагинация по кнопке. После нажатия на кнопку #pdopage приобретает свойство полупрозрачности и на этом все. В консоли видно что отправляется Get запрос, но ни ответа ни привета. Собственно вопрос, как понять в чем проблема?
Данный каллбек ничего не возвращает:
pdoPage.callbacks['after'] = function(config, response) {
console.log('Конфиг после загрузки!', config);
console.log('Ответ от сервера!', response);
}
Вызов сниппета:<div id="pdopage">
<div class="rows">
[[!pdoPage?
&element=`vip_pdo`
&context=`[[*context_key]]`
&action=`buy`
&item_type=`all`
&status_filter=`offline_too`
&limit=`4`
&my_lang=`[[!user_lang]]`
&ajaxMode=`button`
&pageVarKey=`page`
&ajaxTplMore=`@INLINE <button class="btn btn-default btn-more glyphicon glyphicon-refresh"></button>`
]]
</div>
<div class="hide">[[!+page.nav]]</div>
</div>
Комментарии: 5
Вероятно, дело в параметрах:
Каким образом можно передать дополнительные параметры в Get запросе?
&context=`[[*context_key]]`
&action=`buy`
&item_type=`all`
&status_filter=`offline_too`
&my_lang=`[[!user_lang]]`
Которые не указываются во встроенном запросе.Каким образом можно передать дополнительные параметры в Get запросе?
как вариант, в &where=`` в виде json-строки, которую в последствии распарсивать в своём сниппете
Попробовал. Данные в сниппет передаются. Однако при Ajax — запросе, параметр where не учитывается, увы.
Параметры:
Параметры:
assetsUrl: "/assets/components/pdotools/"
link: "#pdopage .pagination a"
mode: "button"
more: "#pdopage .btn-more"
moreTpl: "<button class="btn btn-default btn-more glyphicon glyphicon-refresh"></button>"
pageLimit: 4
pageVarKey: "page"
pagination: "#pdopage .pagination"
rows: "#pdopage .rows"
wrapper: "#pdopage"
аа, ну да. я свои параметры добавлял сам. у мя на странице 2 чекбокса и один текстовый инпут.
может мой код поможет:
может мой код поможет:
$(document).ready(function(){
$('.filters input').on('change keypress paste', function() {
var service = '';
if($('.filters .service_foto:checked').length == 1 && $('.filters .service_design:checked').length)
service = 'all';
else if($('.filters .service_foto:checked').length == 1)
service = 'service_foto';
else if($('.filters .service_design:checked').length == 1)
service = 'service_design';
var city = $('.filters .city').val();
$.ajax({
type: "POST",
data: "city="+city+"&service="+service,
url: "[[~1539? &scheme=`full`]]",
beforeSend: function() {
$('#pdopage').html('<div class="center" style="width:100px;padding:50px; 0"><i class="fa fa-refresh fa-spin fa-3x"></i></div>');
},
success: function(response) {
$('#pdopage').html(response);
}
});
});
});
$(document).on('as_complete', document, function(e,d) {
$(document).on('click', '.pagination a', function(e) {
e.preventDefault();
var url = $(this).attr('href');
var service = '';
if($('.filters .service_foto:checked').length == 1 && $('.filters .service_design:checked').length)
service = 'all';
else if($('.filters .service_foto:checked').length == 1)
service = 'service_foto';
else if($('.filters .service_design:checked').length == 1)
service = 'service_design';
var city = $('.filters .city').val();
$.post(url, {as_action: d["key"], city: city, service: service}, function(response) {
if (typeof response.output !== "undefined") {
$('#pdopage').html(response.output);
}
}, "json");
return false;
});
});
на странице по адресу [[~1539]] вызывается мой сниппет, где я формирую условия для вызова pdoPage (всякие select, join'ы, where, который складываются в массив options), а возвращает он это:$output = $modx->runSnippet('pdoPage',$options);
echo $output.$modx->getPlaceholder('page.nav');
единственный минус — не меняется тайтл и урл при пэйджинге, хз как побороть это) если кто подскажет — буду признателен
По всей видимости, нужно дорабатывать frontendjs.
Жаль, что в «assets/components/pdotools/js/pdopage.js» нет комментариев к коду.
Жаль, что в «assets/components/pdotools/js/pdopage.js» нет комментариев к коду.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.