Как сделать ajax ленту совместно с mFilter2 ?
Доброго дня, подскажите пожалуйста каким образом вместо пагинации результатов mFilter2 использовать безконечный скролл, как это сделать с getResources или pdoResources я знаю, написать сниппет который обработает результат pdoResources, вывести в формате json, а потом просто дергать нужное количество через post, а вот как это прикрутить к mFilter2 что то не могу понять как, заранее спасибо
Комментарии: 15
пытался заставить работать через pdoPage + ajax=`1` но почему то ответ не приходит
Я так подозреваю надо переписывать default.js эмФильтра. Везде вместо подмены содержимого контейнера, вставлять .append().
У меня такая же задача будет в текущем проекте. Как сделаю, отпишусь что да как.
У меня такая же задача будет в текущем проекте. Как сделаю, отпишусь что да как.
хотелось бы его не переписывать, от обновлений в таком случае придется отказаться чего не хочется, я все пытаюсь заставить pdoPage выдать мне json но почему то не получается, однако в документашке написано что он может, что не так делаю пока не пойму
Выставить кастомые пути до js-файла — не вариант?
Приложи форму вызова pdoPage для json-ответа.
Приложи форму вызова pdoPage для json-ответа.
<script>
$(document).ready(function(){
console.log('asdas asd asd ');
$.get('index.php?id=1&page=2', function(response) {
console.log(response);
}, 'json');
});
</script>
[[mFilter2?
&ajax=`1`
&parents=`14165`
&paginator=`pdoPage`
&tpls=`search_block_item`
&hideContainers=`1`
&limit=`10`
&includeTVs=`img,metro,okrug,area,price,price_ot,price_do,street,object_id,createPDF`
&tvPrefix=``
&toPlaceholders=`my.`
&showLog=`true`
&filters=`
tv|metro,
tv|okrug,
tv|area:number,
tv|price:number
`
&tplFilter.row.tv|price=`tpl.mFilter2.filter.number`
&tplFilter.row.tv|area=`tpl.mFilter2.filter.number`
&tplFilter.row.tv|metro=`tpl.mFilter2.filter.checkbox`
&tplFilter.row.tv|okrug=`tpl.mFilter2.filter.checkbox`
&tplFilter.outer.tv|metro=`tpl.mFilter2.filter.outer.select`
&tplFilter.outer.tv|okrug=`tpl.mFilter2.filter.outer.select`
]]
Пробовал так же оборачивать вызов mFiler2 в pdoPage но сервер сказал что памяти не хватает, и пробовал вызвать pdoPage с набором параметров по типа как в документации &paginator=`pdoPage@myParams` но все еще ничего =(
ну как запрашивать порции при прокрутке я знаю, по примеру из документашки я так понимаю что результат должен прийти мне в консоль, но там пусто
Ты картинку видишь? Видишь, что всё приходит в ответе от сервера? Видишь, что запрос и ответ работают через ajax?
Если непонятно, что дальше делать — я ничем не могу помочь.
Если непонятно, что дальше делать — я ничем не могу помочь.
картинка не погрузилась сразу, понял, спасибо
очень странный результат я получил, я написал такой код
var url = 'http://property.test.lmrk.ru/assets/components/msearch2/action.php';
$.post(url, {
action: 'filter',
pageId: '1',
'tv|area': '50,310393',
'tv|price': '1500,49300',
page: '8',
key: window.mse2Config.key // Кстати не пойму что это за ключ
},function(data){
$('#mse2_results').html($.parseJSON(data).data.results);
});
и что самое интересное этот код не работает именно в моем регионе, вот текст ошибки XMLHttpRequest cannot load http://property.test.lmrk.ru/assets/components/msearch2/action.php. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://propery.test.lmrk.ru' is therefore not allowed access.
У Вас кроссдоменный запрос
это я понял, как с этим бороться?
просто не пойму что не так делаю
Кому интересно и кто айдет вопрос, mFilter2 уже отдает все результаты в json которые можно вертеть как угодно, вот мой код для реализации ленты
<script>
var xhr_is_sent = false; //флаг отправки
$(window).scroll(function() {
if ($(window).scrollTop() == $(document).height() - $(window).height())
{
var url = '/assets/components/msearch2/action.php';
if (!xhr_is_sent) {
//отправляем запрос только если завершился предыдущий
xhr_is_sent = true;
$.post(url, {
action: 'filter',
pageId: '1',
'tv|area': '50,310393',
'tv|price': '1500,49300',
page: '8',
key: window.mse2Config.key // в это переменной содержится ключ , я так и не понял зачем он нужен но для каждого генерируется свой собственный
},function(data){
$('#mse2_results').append($.parseJSON(data).data.results);
xhr_is_sent = false;
});
}
}
});
</script>
всем удачи, и всем спасибо кто помог в решении вопроса
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.