2012-06-11 1 views
1

Так что я пытаюсь внедрить бесконечный прокрутки, вытягивая из таблицы в моей базе данных mysql, и у меня это есть, так что, когда нижняя часть страницы будет достигнута, она вызовет новый количество отзывов, которые нужно вытащить в новостной ленте, но по какой-то причине, когда она доходит до дна, а просто показывает загрузку gif и ничего нового. Любая помощь, в которой я запуталась, была бы потрясающей. Спасибо, ребятаБесконечный свиток с JQuery, PHP и Ajax

Вот мой JQuery/Ajax:

<script> 
//Script to continue the home newsfeed after 10 posts 
$(window).scroll(function() { 
if($(window).scrollTop() === $(document).height() - $(window).height()) { 
    $('div#load_more_posts').show(); 

    $.ajax({ 
     url: "load_more_posts.php?lastPost=" + $(".display_newsfeed:last").attr("id"), 
     success: function(html) { 
      if(html) { 
       $("#outputDiv").append(html); 
       $('div#load_more_posts').hide(); 
      } else { 
       $('div#load_more_posts').replaceWith("<center>Finished loading all Posts!</center>") 
      } 
     } 
    }); 
} 
}); 
</script> 

Вот часть кода, где лента называется:

<div class="outputDiv"> 
    <?php echo "$outputList"; ?><!-- Div for this output has been declared above in PHP before echoing --> 
</div> <!-- END outputDiv --> 

<div id='load_more_posts' style="display:none"> 
<center> 
<img src="../../images/loading.gif" alt="Loading" /> 
</center> 
</div> 

И, наконец, вот дисплей Newsfeed для каждого review (display_newsfeed.php):

$review_query = mysql_query("SELECT * FROM `reviews` ORDER BY `review_date` DESC LIMIT 0,10"); 

while($review_row = mysql_fetch_assoc($review_query)){ 

    $review_title = $review_row['review_title']; 
    $user_id = $review_row['user_id']; 
    $user_firstname = $review_row['user_firstname']; 
    $user_lastname = $review_row['user_lastname']; 
    $review_id = $review_row['review_id']; 
    $review_body = $review_row['review_body']; 
    $review_referral = $review_row['review_referral']; 


    $outputList .= ' 
        <div class="display_newsfeed" id="'.$review_id.' display_newsfeed"> 
         This code is each review 
         </div> 
            '; 

ответ

1

Вам не хватает закрывающего кронштейна в вашем цикле while display_newsfeed.php. Вы также ссылаетесь на div с идентификатором 'outputDiv' в вашем javascript, но этот элемент не существует (вы назначаете ему CLASS 'outputDiv' в HTML). Не уверен, что это были только опечатки, вставляющие код здесь, но любой из них может определенно вызвать проблему.

Если ни одна из них не является проблемой, лучшим следующим шагом будет определение, где проблема. Если в вашем браузере есть консоль разработчика (или firebug), дважды проверьте, что запрос AJAX выходит и видит, возвращает ли он ожидаемый HTML. Если это так, проблема, безусловно, связана с кодом на стороне клиента (в частности, что-то в обратном вызове успеха, если только запрос не выходит вообще). Если нет, проблема, безусловно, связана с скриптом на сервере.

 Смежные вопросы

  • Нет связанных вопросов^_^