2

我正在开发 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 执行此操作意味着编写函数而不是其相当笨拙意味着我必须发送总记录,而不是手动验证限制,查看检查总记录是否相等或更多所以我使用上述逻辑移动让我知道它是否正确...或任何其他解决方案或指南。

4

2 回答 2

1

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

这是另一篇文章,它将帮助您如何将它与 CakePHP 一起使用。

于 2012-07-20T07:30:10.583 回答
0

使用 twitter 样式的分页,虽然你排序 ASC,而 facebook 和 twitter 排序 DESC,它仍然适用。

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

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

'update' => 'listID'

应该

'update' => '#listID'
于 2012-07-31T09:47:37.723 回答