2013-04-04 66 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));