我正在尝试为新闻Feed中的帖子实现无限滚动功能。一旦用户到达页脚,帖子就会被加载到新闻源中。
// Infinite Scroll
var offset = 0;
if($(window).scrollTop() >= $('.post-wrapper').offset().top + $('.post-wrapper').outerHeight() - window.innerHeight) {
if (element_in_scroll("footer")) {
$('div.loadmoreajaxloader').show();
$.ajax({
url: '<?= Config::get('URL'); ?>index/loadPosts',
success: function(data) {
if(data) {
$(".post-wrapper").append(data);
$('div.loadmoreajaxloader').hide();
offset++;
} else {
$('div.loadmoreajaxloader').html('<center>Es sind keine weiteren Posts vorhanden.</center>');
}
}
});
}
});
查询
$query = $database->prepare("SELECT * FROM posts LIMIT 1 OFFSET $offset");
$query->execute();
return $query->fetchAll();
<小时/> 偏移量按照我的意愿递增,在jquery代码中(
console.log(offset)
输出1,2,3等等......)。但是,我无法将此变量放入SQL查询中。
我会非常感谢任何帮助!
答案 0 :(得分:1)
您没有在ajax请求中发送javascript变量offset
更改以下行:
url: '<?= Config::get('URL'); ?>index/loadPosts',
为:
url: '<?= Config::get('URL'); ?>index/loadPosts?offset=' + offset,
防止SQL注入:
$query = $database->prepare("SELECT * FROM posts LIMIT 1 OFFSET :offset");
$query->execute(array(':offset' => $offset));
return $query->fetchAll();
答案 1 :(得分:1)
AJAX
中的GET
值。 offset
PHP
文件中的// Infinite Scroll
var offset = 0;
if($(window).scrollTop() >= $('.post-wrapper').offset().top + $('.post-wrapper').outerHeight() - window.innerHeight) {
if (element_in_scroll("footer")) {
$('div.loadmoreajaxloader').show();
$.ajax({
url: '<?= Config::get('URL'); ?>index/loadPosts?offset='+offset,
success: function(data) {
if(data) {
$(".post-wrapper").append(data);
$('div.loadmoreajaxloader').hide();
offset++;
} else {
$('div.loadmoreajaxloader').html('<center>Es sind keine weiteren Posts vorhanden.</center>');
}
}
});
}
}
值
$offset = $_GET['offset'];
$query = $database->prepare("SELECT * FROM posts LIMIT 1 OFFSET $offset");
$query->execute();
return $query->fetchAll();
在PHP文件中
AccountTitle ReportMonth Amount
--------------------------------------------
Visa January 3320.00
Medical January 1635.82
Commission January 2200.00
Staff Allowance January 1215.00
Commission January 2200.00
Medical February 1636.00
Commission February 2200.00
Staff Allowance March 1750.00