2013-04-04 7 views
0

Я использую cakephp 2.2.2, и я хочу создать простую разбивку на страницы ajax. Я следую за этим (http://book.cakephp.org/2.0/en/core-libraries/helpers/js.html#ajax-pagination), и я не могу заставить его работать правильно. Когда я загружаю страницу, иногда она использует ajax, иногда это не так, в IE 10 я также получаю что-то странное, как и все меню, сворачивающееся в div, который был установлен для обновления.CakePHP Проблемы с разбивкой по страницам Ajax

Вот что я сделал:

  1. Поместите echo $this->Html->script('jquery'); внутри <head> мой файл макета.
  2. Включенный компонент RequestHandler и помощник Js в моем контроллере.
  3. положить это в самом начале моего просмотра файла:

    $ this-> paginator-> Параметры (массив ('Обновление' => '#content', 'evalScripts' => верно));

  4. положить это в нижней части файла макета непосредственно перед </body>: echo $this->Js->writeBuffer();

  5. Тогда я обычно используется Paginator так:

    эхо $ this-> paginator-> сортировки ('Идентификатор') ;

Может кто-нибудь сказать мне, если мне что-то не хватает или что не так, потому что я действительно не могу понять, что я делаю неправильно. Большое спасибо.

ответ

2

У меня также были проблемы с ajax в разбивке на страницы.

Я нашел временное решение. В функции контроллера добавьте следующий код, чтобы установить переменную флага.

if($this->request->is('ajax')){ 
     $this->set('paginate',true); 
    } 

Тогда в представлении вам нужно скрыть раздел, кроме под #content div.

<?php if(!isset($paginate)): 
    // Code above # content div including the start of div 
endif:?> 

Pagination code inside the content div 

<?php if(!isset($paginate)): 
    // Code below # content div including content of div 
endif:?> 

P.S. Логика заключается в том, что когда разбиение на страницы выполняется, другие части не будут отображаться в просмотренном виде.

+0

Спасибо, я попробую, что через день или два, когда я достаю этот проект еще раз, но вы думаете, это фиксирует проблема, которую перезагружает один раз браузер (например, нет ajax), а в другой раз он не перезагружается (например, есть ajax). Это происходит только с использованием разбивки на страницы, каждый другой элемент ajax, который я настраиваю и использую сам, работает отлично. Или это помогает только той части, где я иногда перепутаю divs один в ноте? – mirage

0

Просто переместите этот код из файла view к вашим layout:

$this->Paginator->options(array('update' => '#content', 'evalScripts' => true)); 
Смежные вопросы