2011-11-12 33 views
2

我目前使用的腳本我上hycus.com發現我的網頁上創建點擊功能的負載更多。當你點擊加載更多按鈕時,它從服務器獲取數據並使用ajax顯示它。它工作正常,但我有這個問題...即使沒有數據顯示,加載更多按鈕仍然顯示。jQuery的負載更多的按鈕,只有當有什麼東西加載

我希望負載更多的按鈕顯示,只有當有數據顯示和消失時,有沒有數據顯示。

索引頁: 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個項目從數據庫中,當你上載點擊更多,它會觸發loadmore.php,這將載入10多個數據出發從已經加載的最後一個ID。我想要做的是...如果數據庫中的項目少於25個,並且顯示數據庫中的項目數超過25個,則從屏幕中移除更多負載。

+0

如何在10個項目中顯示?你有他們的HTML標記嗎? –

+0

只是一個正常的

  • 項目一個
  • 項目出現兩次
  • 這種結構 –

    回答

    2
    <?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 } ?> 
    
    +0

    hello山姆,你的腳本說,如果行超過25,它應該隱藏加載更多的按鈕?不應該如果行少於25它應該隱藏loadmorebutton? –

    +0

    你是對的。這是否工作? –

    +0

    嗨Sam ...解決方案thanx。我將大於號改爲小於號,並且工作。你能否在這個頁面上發佈你的答案,而不是[http://stackoverflow.com/questions/8120743/jquery-hide-show-load-more-button/],然後在這裏刪除你的答案,以便我可以刪除此頁面?謝謝 –

    2

    在你的jQuery ready函數將這個:

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

    我已經放在你的腳本,無論我能想到和它不工作... ????? –

    +0

    @samuel謝謝你救了我的一天:) – dh47