我正在进行一个从sql表中提取大量数据的查询。我想实现一个无限滚动功能,这样一次只能拉出25条记录。
我遇到了一些麻烦。
当用户向下滚动时,将调用此查询。 jquery向php发布放在页面上的最后一条记录的最后一个id;
//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,我肯定会得到以下两个结果。但是,我每次都得到相同的两个结果。
SELECT
id,
order_number
FROM sales_orders
WHERE id > '$last_id'
ORDER BY id ASC
LIMIT 2
这是通过模板运行数据以填充div的jquery。由于vkTemplate不支持追加,一旦用内容填充div,我删除刚刚填充的div的id,并将id提供给它下面的div,所以下次有一个滚动,内容将进入该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);
}
});
}
});
你有没有想过为什么同样的两个记录被翻过来?
非常感谢!
此外,我发现这个滚动函数似乎在和向下调用。但这是一个不同的问题。只是这么说,你知道我至少知道那么多。
答案 0 :(得分:1)
vkTemplate确实支持追加。看一下vkTemplate主页
http://www.eslinstructor.net/vktemplate/
有菜单项“追加技术”。
使用vkTemplate实现追加的另一种方法是自定义此插件。这很简单:打开代码并找到第94,102,117行https://github.com/vkiryukhin/vkTemplate/blob/master/vktemplate.js
$(elm).empty().append(. . .)
并从此表达式中删除empty()。
希望这有帮助,
-Vadim