Ajax Пейджинг / сортировка в cakephp 2.0 - PullRequest
0 голосов
/ 17 февраля 2012

Я использую cakephp 2.0 и пытаюсь создать ajax-пейджинг, который я не могу найти в документации, которую я прочитал, что передача этого

$this->Paginator->options(
                          array('update'=>'#box',
                                'evalScripts' => true,
                                'before' => $this->Js->get('#loaderIDast')->effect('fadeIn', array('buffer' => false)),
                                'complete' => $this->Js->get('#loaderIDast')->effect('fadeOut', array('buffer' => false)),
                          ))

в представление сделает paginaton помощником для создания ajax-ссылки, что в моем случае не,Я использую движок jQuery здесь.

При копании файлов библиотеки я обнаружил, что paginator использует функцию события, которая делает это

jQuery("#link-969794460").bind("click", function (event) {jQuery.ajax({beforeSend:function (XMLHttpRequest) {jQuery("#loaderIDast").fadeIn();}, complete:function (XMLHttpRequest, textStatus) {jQuery("#loaderIDast").fadeOut();}, dataType:"html", evalScripts:true, success:function (data, textStatus) {jQuery("#box").html(data);}, url:"\/admin\/user\/manage_user\/sort:User.name\/direction:asc"}); return false;});

, и это почему-то не возвращается в вызове события.Я не знаю, почему у кого-то есть идея, чего мне не хватает?

С уважением, Химаншу Шарма.

Ответы [ 3 ]

4 голосов
/ 17 февраля 2012

Собственно, в книге есть пример . Ищите раздел Ajax Pagination. Обязательно следуйте всем указаниям, и это сработает.

Вам нужно:

  • Компонент RequestHandler для загрузки в ваш контроллер.
  • Js Helper, который будет загружен в ваш контроллер.
  • Вам необходимо включить jQuery в ваше представление / макет.
  • И вам нужно написать буфер Js ($this->Js->writeBuffer()) в вашем представлении / макете. Было бы предложено поместить это в ваше представление, если вы не загрузите помощник Js в свой AppController, потому что иначе $this->Js не будет определен.

Пример в книге использует jQuery и работает.

1 голос
/ 04 июня 2012

У меня была такая же проблема, но в моем случае идентификатор тега div в файле макета был неверным. Это должно быть «содержание».

1 голос
/ 15 апреля 2012

Пожалуйста, не забудьте добавить $ this-> Paginator-> numbers () после того, как вы сообщите помощнику по нумерации страниц, что вам нужна ссылка на JavaScript вместо простого html

    <?php
$this->Paginator->options(array(
        'update' => '#content',
        'evalScripts' => true,
        'before' => $this->Js->get('#busy-indicator')->effect('fadeIn', array('buffer' => false)),
        'complete' => $this->Js->get('#busy-indicator')->effect('fadeOut', array('buffer' => false)),
    ));
    ?>
    <?php echo $this->Paginator->numbers();?>
...