Кнопка «Загрузить больше» только тогда, когда есть что загрузить - PullRequest
2 голосов
/ 12 ноября 2011

В настоящее время я использую скрипт, который я нашел на 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, который загружает еще 10 данных, начиная с последнего загруженного идентификатора.,Что я хочу сделать, это ... убрать «Загрузить больше» с экрана, если в базе данных менее 25 элементов, и показать, есть ли в базе более 25 элементов.

Ответы [ 2 ]

2 голосов
/ 14 ноября 2011
<?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 } ?>
2 голосов
/ 12 ноября 2011

Поместите это в функцию jQuery ready:

if($('#postswrapper li').length == 10) {
    $('#loadmorebutton').show();
}
else {
    $('#loadmorebutton').hide();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...