我正在尝试从db.I中得到一些注释,我已经创建了一个设置为2的计数器
var limit=2;一旦用户单击它,则注释计数设置为4,第二次计数器值设置为6 .....etc。
问题是,当我第一次单击按钮时,显示的是6条记录而不是4条
$(document).ready(function(){
var limit=2;
$(document).on('click','.more',function(){
limit=limit+2;
$('#comments').load("loadComments.php",{
limit:limit
});
});
});我是loadComment.php
$limit=$_POST["limit"];
$sql = "SELECT * FROM comments order by id desc limit $limit "; 发布于 2018-08-17 16:35:29
你很亲密
$(document).ready(function(){
var limit=2;
$(document).on('click','.more',function(){
limit=limit+2;
$('#comments').load("loadComments.php?limit="+limit);
});
});
$limit = (int)$_GET["limit"];
//$limit = intval($_GET["limit"]); //if you like functions better they are basically the same.
$sql = "SELECT * FROM comments order by id desc limit $limit"; 首先,load是$_GET请求,因此您可以通过$_GET中的查询字符串传递限制。
然后,将限制设置为int。许多准备好的语句实际上不能很好地处理限制或按子句排序的问题。更别提我不知道你在使用什么DB或库了。但铸造它应该能解决大部分问题。
现在,如果load做了您想做的事情(在容器中加载html ),那么使用它是完全可以接受的,但是它被认为是Get类型的请求。因为某种原因,有些人在某种程度上比得到的东西更安全,但事实并非如此。因此,如果这使您的代码更易于阅读和实现,那么它就更好了。
描述:从服务器加载数据,并将返回的HTML放到匹配的元素中。
http://api.jquery.com/load/
我要提到的最后一件事是小心SQLInjection:
最好总是让查询准备好语句。对于查询中的ORDER和LIMIT子句来说,这有点棘手。但是由于极限只接受一个数字,所以我们可以将它转换为int (int),或者使用intval()。
干杯。
https://stackoverflow.com/questions/51899531
复制相似问题