Ajax Pagination附加元素而不是更新id

时间:2012-07-19 16:14:59

标签: cakephp-2.0

我正在开发Cakephp应用程序。我想要的是创建facebook风格的分页。我仍然在简单排序上完成了Ajax分页。现在我的逻辑我将创建下一个按钮。和渲染元素。 Cakephp本身将管理分页。但我的问题是它将我的视图呈现给它在'更新'期间问我的特定div(ID)。我的dom风格是......

<div class="fb_style" id='1'></div>
<div class="fb_style" id='2'></div>
<div class="fb_style" id='3'></div>
<div class="fb_style" id='4'></div>
<div class="fb_style" id='5'></div>
<div class="fb_style" id='6'></div>
<div id='more button'>MORE BUTTON(ACTUALLY PAGINATOR NEXT LINK)</div>

我想在id = 6旁边渲染div,或者我可以说.fb_style:last旁边 我的分页示例代码...我很简单希望附加到特定的dom元素。

$this->Paginator->_ajaxHelperClass = "Ajax";
$this->Paginator->Ajax = $this->Ajax;
$this->Paginator->options(array('update' => 'listID',
    'url' => array('controller' => 'poets', 'action' => 'index', $separator),
    'indicator' => 'loaderID'));

如果我使用Jquery意味着编写函数而不是它的完整意味着我必须发送总记录,而不是手动验证限制,在查看检查总记录是否相等或更多因此我移动以上逻辑让我知道如果它正确...或任何其他解决方案或指南与它。

2 个答案:

答案 0 :(得分:1)

我使用了Infinite scrolling JQuery plugin,它运作正常。这个jquery插件将为您提供自定义内置事件,您可以使用它们向控制器的方法发送Ajax请求。此外,如果它将工作,那么你可以将其改为css看起来像facebook无限滚动功能。

以下是another post,它将帮助您如何在CakePHP中使用它。

答案 1 :(得分:0)

使用Twitter的分页风格,虽然您订购ASC,而Facebook和Twitter订购DESC,它仍然适用。

将min_id表单作为参数发送给第一个结果,并在index()条件中使用它,以便下一个请求获得下一个结果块。

这比获取第2页更安全,因为可能同时添加了新记录,因此您将丢失记录或重复(仅当您更改为订单DESC时适用,对于ASC订购,使用页面是安全的2)

'update' => 'listID'

应该是

'update' => '#listID'