2014-07-02 112 views
0

我在網上搜索了很多次,但我沒有找到簡單的方法來解決我的問題。我有一個有很多記錄的mysql表。我有這個jQuery代碼:如何用mysql實現無限滾動?

$(document).ready(function(){ 
    var screenHeight = $(window).height(); 
    $(window).scroll(function(){ 
     var scroll = $(this).scrollTop(); 
     var divHeight = $('#data').height(); 
     var totalHeight = screenHeight + scroll; 
     var left = divHeight - totalHeight; 
     if(left < 10) 
      $('#loader').html('<img src="images/loading.gif"> Loading'); 
      //There must be a function 
    }); 
}); 

如何使最初顯示在頁面上的10條記錄和當您向下滾動顯示10條記錄?

我的英語很爛,很抱歉翻譯。

回答

0

滾動就像沒有點擊的標準分頁。 因此,您的查詢必須帶參數,以便您可以確定需要記錄的哪一部分(從x到y) 然後,您只需將一組新行添加到容器的末尾即可。 我會建議你先讓它在沒有數據庫訪問的情況下工作,追加原始靜態html 10次,以查看上面原始代碼的行爲。

+0

基本上我理解它,但我不知道如何使用php和ajax實現它 – user3780736

+0

使用上面給出的SQL,您應該能夠觸發一個ajax請求到php,然後從php到SQL。什麼部分給你帶來困難? 你知道ajax和/或PHP DB查詢嗎? – user1835565

+0

我只知道php的查詢 – user3780736

1

你想要做的是在你的JavaScript中有一個計數器變量,它將保存頁面上當前顯示的項目數量。舉個例子,這個計數器將等於10(頁面上的10個初始項目)。

當你發送一個AJAX請求到服務器時,您將包括該計數器變量 - 它會在SQL查詢中使用跳過的項目你已經顯示:

$query = "SELECT * FROM items LIMIT 5, $counter ORDER BY create_time" 

這將返回5但跳過第一行$counter行(前10行)。

當JavaScript收到回覆時,您會計算您獲得的項目數量並將該數字添加到您的計數器中。您的計數器現在應該是10 + 5 .. 15 ...

下一次您從服務器請求更多內容時,它將跳過15個項目,並且只會給您接下來的5個項目。

+0

但我現在沒有如何創建這個變量,併發送一個ajax查詢到mysql – user3780736

+0

@ user3780736 - 一步一步。創建一個變量就像'var foo =「bar」'一樣簡單......關於創建一個AJAX請求,我建議在這裏查看一些現有的帖子[so] - 這個主題已經被覆蓋很多次了。 – Lix

+0

例如,我創建了一個變量'var foo =「bar」',所以這個foobar如何幫助我從10號表中獲取記錄並將其屏蔽在某個div中? – user3780736