Автор Тема: Ajax пагинация в Ditto  (Прочитано 2813 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн masterkadaj

  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
  • Версия modx: 1.12
Ajax пагинация в Ditto
« : 11 Май 2014, 23:48:46 »
Доброе время суток!
Ситуация следующая:
Есть сайт на MODx, (на стадии тестирования работаю под DENVER'ом), по сути - каталог объявлений. Сам вывод объявлений решил реализовать на Ditto. Между тем, рядом с выводом статей расположена форма поиска. Чтобы при перезагрузке страницы поля формы не слетали (имею в виду пагинацию), решил попробовать сделать пагинацию через Ajax:


<div id="ajax-container">
  <div id="articles">
   [!searchDitto!]
   <div id="pages">[+pages+]<>
  <><!--/#ajax-container-->
<><!--/#articles-->


<script type="text/javascript">
   $(document).ready(function(){
      $('#pages a').click(function(){
         var url = $(this).attr('href');
         $('#ajax-container').load(url + ' #articles');
         return false;
      });
   });
</script>


Вызов дитто через отдельный сниппет решил сделать из-за множества параметров поиска (ценовой диапазон, наличие фото, и т.д.).
На всякий привожу код сниппета:
<?php
print_r($_POST);
switch($_POST['razdel']){
   case "A1":$parent=11;break;
   case "A2":$parent=12;break;
   case "A3":$parent=13;break;
   case "A4":$parent=14;break;
   case "B1":$parent=17;break;
   case "B2":$parent=15;break;
   case "B3":$parent=16;break;
   case "С1":$parent=19;break;
   case "С2":$parent=20;break;
   case "С3":$parent=18;break;
   default:$parent=2;
}


$output=$modx->runSnippet("ditto",
                    array("depth"=>20,
                     "where"=>"isfolder=0",
                     "paginate"=>1,
                     "startID"=>$parent,
                     "display"=>1));
return $output;
?>


Пока что здесь фильтруется только раздел, ну да лиха беда начало! :) .
Проблема вот в чем: когда выдает список страниц, ajax срабатывает через раз. Т.е.: кликаю по странице "2", ajax срабатываает, "3" - нет, "4" - да, "5" - нет, и так далее. Проблема, я так думаю, что кроется в том, что поскольку сами ссылки загружаются аяксом, то евенты на них слетают. Вопрос в том, как это побороть? Заранее спасибо!

Оффлайн GTX59

  • Создатель
  • ***
  • Сообщений: 104
    • Просмотр профиля
  • Версия modx: evo 1.0.13
Re: Ajax пагинация в Ditto
« Ответ #1 : 13 Май 2014, 12:35:20 »
$('#pages a').live("click", function())

Оффлайн masterkadaj

  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
  • Версия modx: 1.12
Re: Ajax пагинация в Ditto
« Ответ #2 : 13 Май 2014, 12:42:29 »
Спасибо за ответ!  :)  Пробовал, один фиг слетает... Но проблему устранить таки удалось. Собственно проблема заключалась именно в том, что слетал ивент на ссылки пагинации. Здесь приведен принцип работы библиотеки для отслеживания динамически добавляемых DOM-элементов, и назначения для них событий. Так что можно сказать, что тема закрыта  ura ura ura . Надеюсь, что ссылка пригодится!

Оффлайн stella1982

  • Разбирающий
  • **
  • Сообщений: 65
    • Просмотр профиля
  • Версия modx: evolution
Re: Ajax пагинация в Ditto
« Ответ #3 : 05 Декабрь 2014, 17:15:47 »
Подскажите плиз как вы устранили проблему. У меня до сих пор ссылки слетают. Тоже делаю пагинацию через вызов дитто в сниппете. АЯКС.