[英]Use JQuery variable as OFFSET in SQL query
I am trying to implement an infinite scroll functionality for posts in a news feed. 我正在尝试为新闻提要中的帖子实现无限滚动功能。 The posts are loaded into the news feed as soon as the user reaches the footer.
用户到达页脚后,帖子便立即加载到新闻提要中。
// 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>'); } } }); } });
The Query 查询
$query = $database->prepare("SELECT * FROM posts LIMIT 1 OFFSET $offset"); $query->execute(); return $query->fetchAll();
console.log(offset)
ouputs 1, 2, 3 and so on...).
console.log(offset)
输出1、2、3等...)。
However, I cannot get this variable into the SQL query.
I would be very thankful for any kind of help! 我将非常感谢您提供的任何帮助!
You are not sending javascript variable offset
in your ajax request 您没有在ajax请求中发送javascript变量
offset
Change following line: 更改以下行:
url: '<?= Config::get('URL'); ?>index/loadPosts',
to: 至:
url: '<?= Config::get('URL'); ?>index/loadPosts?offset=' + offset,
Prevent SQL injections: 防止SQL注入:
$query = $database->prepare("SELECT * FROM posts LIMIT 1 OFFSET :offset");
$query->execute(array(':offset' => $offset));
return $query->fetchAll();
offset
value in AJAX
. AJAX
传递offset
值。 GET
the offset
value in your PHP
file 在您的
PHP
文件中GET
offset
值
// 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>'); } } }); } }
In PHP File 在PHP文件中
$offset = $_GET['offset'];
$query = $database->prepare("SELECT * FROM posts LIMIT 1 OFFSET $offset");
$query->execute();
return $query->fetchAll();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.