用ajax分页

时间:2011-10-20 09:40:17

标签: php jquery codeigniter

我已经构建了一个使用ajax进行分页的应用程序(使用PHP,Codeigniter和jQuery),类似于Twitter在当天的回放方式(单击按钮加载更多数据)。

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

如果没有剩余的帖子可以加载,我希望删除“load-more”按钮。但是,现在我只能检查单击按钮时是否还有帖子,脚本返回null。

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

1 - 点击加载更多,再加载5个帖子。 4留下。

2 - 点击加载更多,剩余的4个帖子已加载。

3 - 点击加载更多,不再剩余帖子,按钮消失

但是我想摆脱第3步,应用程序应该“意识到”在第2步没有更多的帖子要呈现。

我确信有一种简单的方法,我还没想过......

5 个答案:

答案 0 :(得分:2)

简单。选择6个帖子而不是5个,仅显示5.如果不少于6个帖子,则不显示更多按钮。

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

答案 1 :(得分:0)

您可以设置一个全局Javascript变量,其中包含的总帖子数量如下:

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

通话结束后将金额与总数进行比较:

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

答案 2 :(得分:0)

返回一个JSON对象,其中一个属性是一个数组(条目),另一个属性是bool“EOF”或类似属性,以指示何时没有更多条目要加载。

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

哦,并在AjaxRequest中添加当前分页的最后一个帖子的id。 这样,服务器就会给你说出它给你的最后一个帖子。 如果在分页期间添加新帖子,则不会产生偏移。

答案 3 :(得分:-1)

你可以尝试这样的事情

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

在循环结束时

答案 4 :(得分:-1)

拜托,请 - 请不要在Ajax中进行分页!

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

更不用说完全不支持js的客户了