2013-04-04 117 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 helper。
  3. 把這個在我看來文件的開頭:

    $這個 - > Paginator->選項(陣列( '更新'=> '#內容', 'evalScripts'=>真));

  4. 把這個佈局文件的底部只是</body>前: echo $this->Js->writeBuffer();

  5. 然後我通常使用分頁程序是這樣的:

    回聲$這個 - > Paginator->排序( 'ID') ;

有人可以告訴我,如果我錯過了什麼或錯在哪裏,因爲我真的無法弄清楚我做錯了什麼。 非常感謝。

回答

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東西都完美無缺。 或者這隻有幫助我有時會弄亂一個在其中的部分? – mirage 2013-05-10 10:48:57

0

只需從view文件移動這個代碼到你layout

$this->Paginator->options(array('update' => '#content', 'evalScripts' => true));