0

我正在使用 cakephp 2.2.2,我想创建一个简单的 ajax 分页。我正在关注这个(http://book.cakephp.org/2.0/en/core-libraries/helpers/js.html#ajax-pagination),我似乎无法让它正常工作。当我加载页面时有时它使用 ajax 有时它不使用,在 IE 10 中我也得到了一些奇怪的东西,比如整个菜单折叠到设置为更新的 div 中。

这是我所做的:

  1. 放入我echo $this->Html->script('jquery');<head>布局文件中。
  2. 在我的控制器中包含 RequestHandler 组件和 Js 助手。
  3. 把它放在我的视图文件的开头:

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

  4. 把它放在布局文件的底部之前</body>echo $this->Js->writeBuffer();

  5. 然后我通常像这样使用分页器:

    echo $this->Paginator->sort('id');

有人可以告诉我我是否遗漏了什么或出了什么问题,因为我真的无法弄清楚我做错了什么。非常感谢。

4

2 回答 2

2

我在分页中也遇到了同样的问题。

我找到了一个临时解决方案。在控制器函数中,添加以下代码来设置标志变量。

 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:?>

PS 逻辑是当分页完成后,其他部分不会显示在分页视图中。

于 2013-04-07T09:54:32.863 回答
0

只需将此代码从您的view文件移动到您的layout

$this->Paginator->options(array( 'update' => '#content', 'evalScripts' => true ));
于 2014-10-08T11:34:03.593 回答