【问题标题】:Load more button only when there's something to load仅在有要加载的内容时加载更多按钮
【发布时间】:2011-11-12 02:11:19
【问题描述】:

我目前正在使用我在 hycus.com 上找到的脚本在我的页面上创建更多点击功能。当您单击加载更多按钮时,它会从服务器获取数据并使用 ajax 显示它。它工作正常,但我遇到的问题是:即使没有要显示的数据,加载更多按钮仍然会显示。

我希望加载更多按钮仅在有数据显示时显示,在没有数据显示时消失。

索引页面: jQuery

<script type="text/javascript">
        $(document).ready(function(){
            $("#loadmorebutton").click(function (){
                $('#loadmorebutton').html('<img src="ajax-loader.gif" />');
                $.ajax({
                    url: "loadmore.php?lastid=" + $(".postitem:last").attr("id"),
                    success: function(html){
                        if(html){
                            $("#postswrapper").append(html);
                            $('#loadmorebutton').html('Load More');
                        }else{
                            $('#loadmorebutton').replaceWith('<center>No more posts to show.</center>');
                        }
                    }
                });
            });
        });
    </script>

HTML:

<div id="wrapper">
<div id="postswrapper">
<?php 
    $getlist = mysql_query("SELECT * FROM table_name LIMIT 25"); 
    while ($gl = mysql_fetch_array($getlist)) { ?>
         <div class=postitem id="<? echo $gl['id']; ?>"><?php echo $gl['title']; ?></div>
    <?php } ?>
</div>
<button id="loadmorebutton">Load More</button>
</div>
</div>

loadmore.php 页面有;

<?php 
$getlist = mysql_query("SELECT * FROM table_name WHERE id < '".addslashes($_GET['lastid'])."' 
LIMIT 0, 25 LIMIT 10"); 
while ($gl = mysql_fetch_array($getlist)) { ?>
<div><?php echo $gl['title']; ?></div>
<?php } ?>

基本上这个脚本的作用是,索引页面会从数据库中加载前25个项目,当你点击load more时,它会触发loadmore.php,它会从最后一个id开始再加载10个数据已经加载了。我想要做的是...如果数据库中的项目少于 25 个,则从屏幕上删除 Load more,并显示数据库中的项目是否超过 25 个。

【问题讨论】:

  • 只是一个普通的
  • item one
  • item two
  • 一种结构

标签: jquery ajax load


【解决方案1】:
<?php 
    $getlist = mysql_query("SELECT * FROM table_name LIMIT 25"); 
    while ($gl = mysql_fetch_array($getlist)) { ?>
         <div class=postitem id="<? echo $gl['id']; ?>"><?php echo $gl['title']; ?></div>
    <?php } 
    if(mysql_num_rows($getlist) <= 25) { ?>
    <script type="text/javascript">
        $(function(){
             $('#loadmorebutton').hide();
        });
    </script>
    <?php } ?>

【讨论】:

  • 你好 Sam,你的脚本说如果行数超过 25,它应该隐藏加载更多按钮?如果行小于 25 不应该隐藏加载更多按钮吗?
  • 嗨 Sam...感谢您的解决方案。我将大于号更改为小于号,它起作用了。您能否请在此页面上发布您的答案而不是 [stackoverflow.com/questions/8120743/…,然后在此处删除您的答案,以便我可以删除此页面?谢谢
【解决方案2】:

把它放在你的 jQuery 就绪函数中:

if($('#postswrapper li').length == 10) {
    $('#loadmorebutton').show();
}
else {
    $('#loadmorebutton').hide();
}

【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签