Laad meer knop alleen wanneer er iets te laden is

Ik gebruik momenteel een script dat ik op hycus.com heb gevonden om meer te laden op de klikfunctie op mijn pagina. Wanneer u op de knop Meer laden klikt, haalt deze gegevens op van de server en geeft deze weer met ajax. Het werkt prima, maar het probleem dat ik heb is dit: de knop Meer laden wordt nog steeds weergegeven, zelfs als er geen gegevens zijn die kunnen worden weergegeven.

Ik wil dat de knop Meer laden alleen wordt weergegeven als er gegevens worden weergegeven en verdwijnen als er geen gegevens worden weergegeven.

indexpagina: jQuery

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

The loadmore.php page has;

<?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 } ?>

Basically what it this script does is, the index page will load the first 25 items from the database, and when you click on load more, it triggers loadmore.php, which will load 10 more the data starting from the last id loaded already. What I want to do is...to remove the Load more from the screen IF there's less than 25 items in the database and show if there's more than 25 items in the database.

2
gewoon een normale
  • item één
  • item twee
  • soort structuur
    toegevoegd de auteur Jay Smoke, de bron
    Hoe worden de 10 items weergegeven? Heb je HTML-markup voor hen?
    toegevoegd de auteur Samuel Liew, de bron

    2 antwoord

    Plaats dit in uw jQuery-ready-functie:

    if($('#postswrapper li').length == 10) {
        $('#loadmorebutton').show();
    }
    else {
        $('#loadmorebutton').hide();
    }
    
    2
    toegevoegd
    Ik heb je script overal geplaatst waar ik aan kan denken en het werkt niet ... ?????
    toegevoegd de auteur Jay Smoke, de bron
    @samuel bedankt dat je mijn dag hebt bewaard :)
    toegevoegd de auteur dh47, de bron
    <?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
    toegevoegd
    hallo Sam, jouw scripts zeggen dat als rijen meer dan 25 zijn, het de knop meer laden moet verbergen? Zou dat niet moeten zijn als de rij kleiner is dan 25, dan zou de loadmorebutton moeten worden verborgen?
    toegevoegd de auteur Jay Smoke, de bron
    Hallo Sam ... bedankt voor de oplossing. Ik veranderde het groter dan teken in minder dan en het werkte. Kunt u alstublieft uw antwoord op deze pagina plaatsen [ stackoverflow.com/questions/8120743/… en verwijder uw antwoorden hier zodat ik deze pagina kan verwijderen? Bedankt
    toegevoegd de auteur Jay Smoke, de bron
    je hebt gelijk. werkt dit?
    toegevoegd de auteur Samuel Liew, de bron