Ajax分页追加元素而不是更新ID

问题描述:

我正在Cakephp应用程序上工作。我想在这里创建Facebook风格分页。尽管如此,我仍然使用Ajax分页来完成简单的排序。现在我的这个逻辑我将创建下一个按钮。和渲染元素。 Cakephp将自己管理分页。但我的问题是它将我的视图渲染为在“更新”期间询问我的特定div(ID)。我的DOM的风格是......Ajax分页追加元素而不是更新ID

<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在div = 6或者我可以说旁.fb_style:最后 我的分页示例代码...我简单的愿望,以追加到特定的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做它的意思写功能比其相当clumpsy意味着我要送总纪录,比手动验证限制,对视图检查是否记录总数相等或更多,所以我上面移动逻辑让我知道它是否正确......或者其他任何解决方案或指导方针。

我用Infinite scrolling JQuery plugin它只是工作正常。这个jquery插件会给你定制的内置事件,你可以使用它来发送Ajax请求到你的控制器的方法。此外,如果它将工作,那么你可以改变它的CSS看起来像Facebook无限滚动功能。

这是another post这将帮助您如何使用它与CakePHP。

+0

我想你没有得到我的观点。我想加载数据和抓取单击按钮时我不希望一次抓取所有,然后显示在卡盘中...我希望只在单击按钮时触发查询,然后附加该数据.. – 2012-07-20 08:36:15

+0

Rahul上述帖子与你所要求的相同。这个jquery插件将帮助你一次获取块中的数据。这就是为什么你这给你ajax发送事件。您可能必须像在按钮上那样自定义它,您需要更多结果。尝试阅读这个插件的文档。它运作良好。 – 2012-07-20 08:41:15

+0

我仍然有点困惑与实施。我的意思是我的观点。 ('Controller/action/page:2 /#content div.post',function(){ $(this).appendTo('#content'); }); N在我的控制器中,我用来检查是否请求ajax而不是渲染某些视图。有下一篇文章的循环..意味着我必须渲染元素。对.. – 2012-07-25 19:18:02

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

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

这是更安全的,然后获取第2页,因为新的记录可能已被添加在此期间,所以你会缺少记录或重复(只适用于当你要改变命令DESC,因为ASC命令它可以安全地使用第2页)

'update' => 'listID' 

应该

'update' => '#listID'