Сниппет(Modx) обрабатывает только первый GET запрос

205
22 июля 2018, 11:50

Существует проблема при фильтрации новостей. Сниппет обрабатывает только первый GET запрос, при повторном запросе данные остаются неизменными.

Код сниппета
<?php Filter Fields Settings
  $filter = array();

 if($_REQUEST['classNews']) {
print_r(gettype($_REQUEST['classNews']));
$filter[] = 'classNews='.$_REQUEST['classNews'];
 }
//Sort
if($_GET['sortby']) {
$sortby = $_GET['sortby'];
} else {
$sortby = 'pagetitle';
}
if($_GET['sortdir']) {
   $sortdir = $_GET['sortdir'];
 } else {
    $sortdir = 'asc';
 }
 //Offset
 $offset = 0;
 if($_GET['offset']){
    $offset = $_GET['offset'];
 }
 if($filter) {
 $where = $modx->toJSON(array($filter));
 } else {
   $where = '';
 }
 $params_count = array(
    'parents' => $parents,
    'limit' => 0,
   'tpl' => '@INLINE ,',
   'select' => 'id',
   'includeTVs' => $fields,
   'showHidden' => '1',
   'where' => $where
   );
 print_r($params_count);
 $count = $modx->runSnippet('pdoResources',$params_count);
 $count = count(explode(',',$count))-1;
 $modx->setPlaceholder('count',$count);
 $params = array(
   'parents' => $parents,
   'limit' => $limit,
   'offset' => $offset,
   'tpl' => $tpl,
   'select' => 'id,pagetitle,introtext,content,publishedon',
   'includeTVs' => $fields,
   'showHidden' => '1',
   'sortby' => $sortby,
   'sortdir' => $sortdir,
   'where' => $where
   );
  print_r($params);
  $more = $count - $offset - $limit;
  $lim = $more > $limit ? $limit : $more;
  $button = '';
  if($more > 0){
      $button = '<div class="ajax-filter-count" data-
   count="'.$count.'"><a href="#" class="ajax-more">Загрузить еще 
   '.$lim.' из '.$more.'</a></div>';
   }
   return $modx->runSnippet('pdoResources',$params).$button;

Ниже код отправки запроса

    var ajaxContainerSelector = '.ajax-container',
        function ajaxMainFunction() {
    console.log($(ajaxFormSelector).serialize())
    $.ajax({
        data: $(ajaxFormSelector).serialize()
    }).done(function(response) {
        var $response = $(response);
        console.log($response+"++")
        $(ajaxContainerSelector).fadeOut(fadeSpeed);
        setTimeout(function() {
            $(ajaxContainerSelector).html($response.find(ajaxContainerSelector).html()).fadeIn(fadeSpeed);
            ajaxCount();
        }, fadeSpeed);
    });
}

Форма с вызовом сниппета

   <div class="row">
   <div class="col-xl-2 col-lg-2"></div>
   <div class="col-xl-8 col-lg-8 col-md-12">
    <div class="row">
    <form class="ajax-form">
       <input type="hidden" name="sortby" value="pagetitle">
       <input type="hidden" name="sortdir" value="asc">
       <h1 class="h-contacts">НОВОСТИ</h1>
       <ul class="news-sections">
          <li class="sections-item-text border" id="allNews" onclick="Border(this,0)">Все новости</li>
          <li class="sections-item-text" id="masterClass" onclick="Border(this,1)">Мастер-классы</li>
          <li class="sections-item-text" id="expertOpinion" onclick="Border(this,2)">Мнение эксперта</li>
        </ul>
        <label>
           <input type='radio' value="0" name="classNews" checked=""></input>
           <input type='radio' value="1" name="classNews"></input>
           <input type='radio' value="2" name="classNews" ></input>
        </label>
      </form>
                </div>
            </div>
            <div class="col-xl-2 col-lg-2"></div>
        </div>
    </div>
    <div class=" ajax-container container " id="result">
    [[catalogFilter?
        &parents=`4`
        &limit=`3`
        &fields=`classNews`
    ]]
    </div>
READ ALSO
Как скрыть блок при наличии сессии?

Как скрыть блок при наличии сессии?

Вот есть такой код, как его изменить так

209
Не работает ссылка &ldquo;Отменить ответ&rdquo; в WordPress

Не работает ссылка “Отменить ответ” в WordPress

Натягиваю верстку на WordPressТема подразумевает древовидные комментарии

184
mysqli transaction странно срабатывает

mysqli transaction странно срабатывает

Собственно хочу сделать 2 INSERT, причем второй с неправильным полем f5 за место f4т

181
Как рисовать на картинке?

Как рисовать на картинке?

Как правильно организовать и что использовать для решения задачи:

198