我正在使用cakephp 2.2.2,我想创建一个简单的ajax分页。我跟着这个(http://book.cakephp.org/2.0/en/core-libraries/helpers/js.html#ajax-pagination),我似乎无法让它正常工作。当我加载页面有时它使用ajax有时它没有,在IE 10中我也得到一些奇怪的东西,如整个菜单折叠到设置为更新的div。
这是我做的:
echo $this->Html->script('jquery');
放入我的布局文件的<head>
。把它放在我的视图文件的开头:
$ this-&gt; Paginator-&gt; options(array('update'=&gt;'#content','evalScripts'=&gt; true));
将其放在</body>
之前的布局文件底部:
echo $this->Js->writeBuffer();
然后我通常使用像这样的分页器:
echo $ this-&gt; Paginator-&gt; sort('id');
有人可以告诉我,如果我遗失了什么或出了什么问题,因为我真的无法弄清楚我做错了什么。 非常感谢。
答案 0 :(得分: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。逻辑是,当分页完成时,其他部分将不会显示在分页视图中。
答案 1 :(得分:0)
只需将此代码从您的view
文件移至layout
:
$this->Paginator->options(array( 'update' => '#content', 'evalScripts' => true ));