2011-11-12 5 views
2

私はhycus.comで見つかったスクリプトを使用して、自分のページのクリック機能の詳細を作成しています。より多くのボタンをクリックすると、サーバーからデータを取得し、ajaxを使用してそのデータを表示します。それが正常に動作しますが、私が持っている問題は、表示するデータがありません場合でも、より多くのボタンがまだ現れ、この...負荷です。Jquery load moreボタンロードするときにのみ

表示するデータがない場合に表示され、消えるデータがある場合にのみ、より多くのボタンを表示するようにします。

インデックスページ: 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の項目をロードします、そしてあなたがより多くの負荷をクリックしたとき、それはデータ開始10以上をロードする、loadmore.phpをトリガー最後にロードされたIDから既にロードされています。私は何をしたいです... 25の未満の項目がデータベース内にあります場合は、画面からより多くの負荷を削除して、データベース内の25の以上の項目があるかどう表示するように。

+0

どのように10の項目が表示されていますか?あなたはHTMLマークアップを持っていますか? –

+0

ちょうど普通

  • アイテム1
  • アイテム2
  • 種類の構造 –

    答えて

    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

    こんにちはサム、あなたのスクリプトは、行が25以上の場合、それはより多くの負荷を非表示にする必要がありますか?行が25未満の場合は、代わりにloadmorebuttonを非表示にする必要がありますか? –

    +0

    あなたは正しいです。これは機能しますか? –

    +0

    こんにちはSam ...解決のためにthanx。私はより大きい記号をより少なくに変更し、それは働いた。このページで回答を投稿してください[http://stackoverflow.com/questions/8120743/jquery-hide-show-load-more-button/]このページを削除できるようにここであなたの答えを削除してください。ありがとう –

    2

    あなたのjQueryのレディ機能でこれを入れて:

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

    私はどこでもあなたのスクリプトを配置しました。 –

    +0

    @サミュエルあなたが私の一日を保存しました:) – dh47

    関連する問題