2016-04-28 9 views
1

フレンドphpとjqueryを使用してスクロールにデータをロードしようとしています。私の問題は、データベースは最後のIDからロードされていますが、最後にロードされたIDは繰り返しています。私はjqueryの競合やコードエラーのために天気を見つけることができません。私はjquery 1.11.1のバージョンを使用しています。より良い理解のために下のイメージを見てください。無限スクロールは同じIDをデータベースから再度返します

enter image description here

とPHPからデータを取得するための私のjqueryのは

$(window).scroll(function(){ 
    if ($(window).scrollTop() == $(document).height() - $(window).height()){ 
     loadData(); 
    } 
    }); 

function loadData() 
{ 
    $('div.postloader').html('<img src="http://www.zesteve.com/img/loader.gif">'); 
    $.post("/getData.php?lastID=" + $(".post-list:last").attr("id"),  
    function(data){ 
     if (data != "") { 
     $(".post-list:last").after(data);    
     } 
     $('div.postloader').empty(); 
    }); 

}; 

とgetData.phpに私は

$last_id = $_GET['lastID']; 
    $stmt = $dbh->prepare('SELECT * FROM review WHERE id < :lastID AND user_id = :user_id order by id DESC LIMIT 5'); 
    $stmt->execute(array(':lastID' => $last_id,':user_id'=>$user_id));  

友人を使用していますです、あなたはここで何を理解していない場合はコメントしてください。私が間違っているところで私を助けてください?

+0

あなたは 'id'属性ではなく、'データid'を持つ要素を追加しているに変更してみて、そのいずれかのデータid' 'と' id'を交換するか、使用して最後のIDを取得 –

+0

eitan申し訳ありません、そのIDはデータIDではありません。この例では訂正しました。 –

+0

ID 93(最後のID)を使用する可能性があると思いますJSなしで作成された最後のものです。 '.find(" post-list:last ")。attr(" id ")、' –

答えて

1

私は要求の実行中にアイテムを引っ張っ防ぐことができますフラグを追加してみてください、あなたが速すぎて、サーバーからデータを引っ張っていると思う:

var flagPulling = false; 
function loadData() { 
    if(flagPulling) { 
     return; 
    } 
    flagPulling = true; 
    $('div.postloader').html('<img src="http://www.zesteve.com/img/loader.gif">'); 
    $.post("/getData.php?lastID=" + $(".post-list:last").attr("id"), function(data){ 
     if (data != "") { 
      $(".post-list:last").after(data);    
     } 
     $('div.postloader').empty(); 
     flagPulling = false; 
    }); 
}; 
+0

何を何度編集しましたか?何らかの訂正が行われました –

+0

2回目の_editedとはどういう意味ですか? –

+0

私はページをロードするときに私に尋ねた私は再び答えをロードする –

0

次の比較:

$last_id = $_GET['lastID']; 

$.post("/getData.php?lastID=" + $(".post-list:last").attr("id"), function(data){ 

あなたはPOSTを使用してますが01でlastIDを探しています。

$last_id = $_POST['lastID']; 
+0

ユーザー'$ _GET ['lastID']' –

+0

yesも$ _GETで作業しています。 –

関連する問題