leshikgo
@leshikgo

AJAX подгрузка новостей modx — как сделать?

Всем привет. Помогите пожалуйста с реализацией подгрузки блоков на движке MODX. А именно, по нажатию на кнопку есть подгрузка, не могу только сделать что бы изначально выводилось бы несколько блоков ДО нажатия кнопки.
$(document).ready(function() {
  var offset = 0;
  // Вешаем обработчик события "клик" на кнопку с классом .more
  $('button.more').click(function() {

    // Ajax post-запрос к странице, выдающей ресурсы (в ней сниппет ajaxResources) 
    var data = $(this).data();

    $.post('http://projects.axblue.ru/gorod.html', data, function(data) {
      offset +=2;
      // Выдаем ответ
      $('.news-list').append(data);
      $('button.more').data('offset', offset);
    })
  })
})


<?php
// Отвечаем ТОЛЬКО на ajax запросы
if ($_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') {return;}

// данный код можно расширить добавив другие действия и указать их в case
$action = filter_input(INPUT_POST,'action');

// Если в массиве POST нет действия - выход
if (empty($action)) {return;}

// А если есть - работаем
$res = '';
switch ($action) {
    case 'getResources': 
        // Задаём параметры для сниппета в AJAX запросе
        $params = array();
        $params['tpl'] = filter_input(INPUT_POST,'tpl');
        $params['parents'] = filter_input(INPUT_POST, 'parents', FILTER_SANITIZE_NUMBER_INT);
        $params['offset'] = filter_input(INPUT_POST, 'offset', FILTER_SANITIZE_NUMBER_INT);
        $params['limit'] = filter_input(INPUT_POST, 'limit', FILTER_SANITIZE_NUMBER_INT);
        $res = $modx->runSnippet('getResources', $params); break;

}
// Если у нас есть, что отдать на запрос - отдаем и прерываем работу парсера MODX
if (!empty($res)) {
    die($res);
}

<button class="btn btn-blue more" data-limit="2" data-action="getResources" data-tpl="tpl.getResources.row" data-parents="40">Показать ещё</button>


Ссылка на сайт с данным элементом
  • Вопрос задан
  • 3011 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы