2011-10-20 132 views
0

我已经构建了一个应用程序(使用PHP,Codeigniter和jQuery),它使用ajax进行分页,类似于Twitter如何在一天中恢复(单击按钮以加载更多数据)。分页与ajax

这一切都很好,但有一些问题。

当没有更多帖子需要加载时,我想要删除“加载更多”按钮。然而,现在我只能检查是否有任何留言,当我点击按钮时,脚本返回null。

现在是这样:假设数据库中有14个帖子。 5默认加载。

- click load-more,加载5个文章。剩下4个。

- 点击加载更多,其余4个帖子被加载。

- 点击负载更多,更多剩余的帖子,按钮消失

但我想摆脱第3步,应用程序应该“知道”的,有没有留下更多内容在渲染步骤2

我肯定有,我没有,如果还没有想到一个简单的方法...

回答

2

简单年底尝试这样的事情

if ($num_rows < 5){ 
/*what ever you want removed */ 
} 

。选择6帖子,而不是5,只显示5.如果没有帖子少于6不显示更多的按钮。

if ($num_rows < 6){ 
    //remove more button 
} 
0

你可以设置一个全局JavaScript变量持有的总帖是这样的量:

var total = <?php echo $total ?>; 

和呼叫后的金额比较总:

if($('.post').length == total) // .post being database results 
    $('#loadmore').hide(); 
+0

是的,但后来还有其他问题。就像用户发布其他帖子时发生的情况一样。那么真正的帖子总数将为$ total + 1 – Marcus

+0

那么,如果有人发帖子,这将通过jQuery来处理,对吗?因为它会被AJAX提交并添加到列表中。由于'total'是一个Javascript变量,因此您可以简单地在您将该帖子添加到列表的相同代码中执行'total ++'。 – Kokos

-1

,你可以在你循环

-1

请,请 - 请不要在Ajax中做分页!

这是痛苦的$$浏览这些页面自然的方式,无法使用后退按钮或重新加载按钮或设置bokmark或任何东西!

更不用说完全不

+0

你可以使用jQuery地址插件来达到这个目的。 – sathis

+0

如果做得正确,你提到的所有东西都可以正常工作。 – 472084

0

返回支持JS客户是一个数组(条目)和一个属性是一个布尔值“EOF”或例如以指示何时一个属性JSON对象没有更多的条目要加载。

如果(response.EOF) //隐藏按钮..

喔,并从AjaxRequest当前的页码加上最后帖子的ID。 通过这种方式,服务器可以为您提供从最后一个25个帖子中提供的信息。 然后,如果在分页过程中添加了新帖子,则不会获得偏移量。