SQL テーブルから大量のデータを取得するクエリを作成しています。一度に 25 レコード程度しかプルされないように、無限スクロール機能を実装したいと考えています。
私はいくつかの問題を抱えています。
このクエリは、ユーザーが下にスクロールしたときに呼び出されます。jquery は、ページに配置された最後のレコードの最後の ID を php に投稿します。
//ie, this js pulls the id
var last_order_number = $('.order_number_divs:last').attr('id');
//from this div
<div id="2476" class="order_number_divs"> 1121310 </div>
idがページの前のidよりも大きい結果をさらに2つ選択すると、次の2つの結果が確実に得られると思いました。ただし、毎回同じ2つの結果が得られます。
SELECT
id,
order_number
FROM sales_orders
WHERE id > '$last_id'
ORDER BY id ASC
LIMIT 2
これは、テンプレートを介してデータを実行して div に入力する jquery です。vkTemplateは追加をサポートしていないため、div へのコンテンツの入力が完了したら、入力したばかりの div の ID を削除し、その下の div に ID を指定します。これにより、次回スクロールがあるときにコンテンツそのdivに入ります。
$(window).scroll(function () {
if ($(window).scrollTop() >= $(document).height() - $(window).height() - 10) {
var last_order_number = $('.order_number_divs:last').attr('id');
console.log(last_order_number);
$.ajax({
type: "POST",
async: false,
url: "queries/privileged_search_more_content.php",
data: "user=" + "<?=$_COOKIE['username']?>" + "&last_order_number=" + last_order_number,
dataType: "json",
success: function (data) {
console.log(data);
$('#INT-order_information_container').vkTemplate("templates/get_orders_initial_template.tmpl?" + <?=time()?> , data, function () {
$('#INT-order_information_container').removeAttr('id');
$('#template_div_next').removeAttr('id')
.attr('id', 'INT-order_information_container');
});
console.log($.active);
}
});
}
});
同じ 2 つのレコードが何度もプルされている理由について何か考えはありますか?
どうもありがとう!
また、私が見つけたこのスクロール機能は、上下に呼び出されるようです。しかし、それは別の質問です。少なくともそれだけは知っているということです。