2016-03-08 18 views
5

JQuery için çok yeni ve bunu nasıl yapabileceğimi işleyemiyorum. Veritabanımda user_thoughts adı verilen bir tablom var. Ben, gerektiği alert("bottom") bir kullanıcı için thoughts 10.Satır sayısı bir JQuery değişkeni olarak nasıl alınır

Her kullanıcı thought yükleyip onların profile_page, sadece kendi düşünceleri görüntülenir üzerinde olabilir aşan cari sonsuzluk kaydırma özelliği uygulamak çalışıyorum. Varsayılan olarak, görüntülemek için 10 mesaja ihtiyacım var, bir kullanıcı sayfanın altına kaydırdığında, kullanıcının yazdığı 10 gönderiyi otomatik olarak yükler. if the user has over 10 posts and the user has scrolled to the bottom, then display more data - - Yine şimdilik, sadece alert() kullanıyorum test için böyle bir şey gider alert() çevreleyen bir if deyimi gerek

$(document).ready(function(){ 
    var load = 0; 
    $(window).scroll(function(){ 
     if($(window).scrollTop() == $(document).height() - $(window).height()){ 
      load++; 
      // start AJAX 
      $.post("inc/ajax.php", {load:load},function (data){ 
       $(".userposts_panel").append(data); // class 
       alert ("bottom"); 
      }); 
     } // if closed 
    }); 
}); 

:

İşte benim infinity_scroll betik. Kullanıcı sadece 2 mesaj yazdıysa ve kullanıcı aşağıya doğru kaydırırsa, alert() oluşmamalıdır.

Benim düşünce

ben çok

if (posts >=10){ 
     alert("bottom"); 
    } 

bu konuyu daha fazla gitmek için en iyi yol olmadığını koşulları gibi belirtmek için o zaman bir kullanıcı için yayın sayısını alır var ve kullanıcı ihtiyaç vardır? Yoksa, hangi yaklaşımı benimsemeliyim?

Düzenleme: Her tek sıra (tek yazı) görüntülenir nasıl

: Belirli bir sınıf görünür unsurlarının sayısını sayarak mesajların uzunluğu alabilir

<div class=userposts_panel> 
<?php 
// PHP query here, leading to this echo ... 
    echo "<div class='message_wrapper'> 
       <div class='where_msg_displayed'> 
        <div class='more_options' style='float: right;'> 
         <li class='dropdown'> 
          <a 'href='#' class='dropdown-toggle' data-toggle='dropdown' role='button' aria-haspopup='true' aria-expanded='false'> More <span 
                                   class='caret'></span></a> 
          <ul class='dropdown-menu'> 
           <li><a href>Flag Post 
           <span id='options' class='glyphicon glyphicon glyphicon-flag' aria-hidden='true'></span> </a></li>"; 
           if ($user == $username){ 
            echo "<li>"; ?> <a href="/inc/del_post.php?id=<?php echo $thought_id;?>">Delete <?php 
            echo "<span id='remove' class='glyphicon glyphicon-remove' aria-hidden='true'></span> </a></li>"; 
           } echo" 
          </ul> 
         </li> 
        </div>"; 
        if ($shared == "no"){ 
         echo "<img class='img-size' src='images/anomolous.jpg' />"; 
         } else { 
          echo "<img class='img-size' src='$profile_pic2'/>"; 
         } 
        echo "<span style='margin-left: 10px;'>$message_content </span> <br/> <br/>"; 
         if ($attachent !=""){ 
          echo "<img src='user_data/attached_images/$attachent' style='width: 230px; height=230px;'/>"; 
         } echo " 
       </div> 
      <div class='where_details_displayed'> 
       <a href='profile_page/$thoughts_by'> <b> $name_of_user </b> </a> - $date_of_msg 
       <div class='mini_nav' style='float: right;'> 
        <a href='/inc/favourite_post.php?id=";?><?php echo $thought_id;?><?php echo "'> 
         <span class='glyphicon glyphicon-heart-empty' aria-hidden='true' style='padding-right: 5px;' onclick='changeIcon()'></span> 
        </a> | 
        <a onclick='return toggle($thought_id);' style='padding-left: 5px;'> Comments ($num_of_comments) </a> 
       </div> 
       <div id='toggleComment$thought_id' class='new_comment' style='display:none;'> 
        <br/> $comment_posted_by said: $comment_body 
       </div> 
      </div> 
     </div>"; 
    ?> 
    </div> // userposts_panel closed. 
+2

Önceden görüntülenen görüntülerin sayısını doğru bir şekilde hesaplamak ve kaydırma yaptığınızda hangisinin getirileceğini doğrulamak için Toplam Kayıt, Sayfa ve Sınır gibi ön tarafa bazı sayfalandırma bilgileri göndermelisiniz. – A1rPun

+0

@ A1rPun'dan bahsettiğimiz gibi, bu, sayfalama işlemini gerçekleştirmenin doğru yolu! Ancak, bu özel sorunun uğruna, her bir satırı nasıl görüntülediğinize dair biraz html snippet'i verebilir misiniz? – Anubhab

+0

@Anubhab - Yardımımı düzenledim. :) – Freddy

cevap

1

senin sayfan, örneğin Diyelim ki size görünümünde yayınlar mevcut sayının uzunluğunu verebilir, sonra her yayını görüntülemek için

var postLen = $('.userposts_panel').find('.postRowWrap').length 

bir sarmalayıcı sınıf 'postRowWrap' kullanıyor diyelim.

size görünümünde yayınlar uzunluğunu verebilir ardından

var postLen = $(".userposts_panel").find('tr').length 

, bir <table> kullanıyorsanız. Şimdi

bunu yapabilirsiniz:

if(postLen > 10){alert()} 

DÜZENLEME: Ah geç benim ucundan ancak sizin durumunuzda bu sonuçlandırmak için biraz -

postLen = $(".userposts_panel").find('.message_wrapper').length //which is, in the wrapper class find number of .message_wrapper which signifies number of messages you have as DOM in your HTML 

size uzunluğunu verecektir Sayfanızdaki mesajların sayısı. Bu yardımcı olur umarım. :)

+0

Merhaba, geç cevap için özür dilerim, diğer sorunlarla yakalandım. Ama çözümünüzü şimdi hayata geçirdim ve mükemmel çalışıyor! Yardımın için teşekkürler. – Freddy

İlgili konular