[英]Counter not working as intended
我正在尝试从数据库中获取一些评论。我创建了一个设置为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 ";
你很亲密
$(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
请求,这样你就可以通过在URL查询字符串传递限制。
然后,将限制转换为整数。 许多准备好的语句不能很好地处理限制或order by子句。 更不用说我不知道您正在使用哪个数据库或库。 但是强制转换应该解决大多数问题。
现在,完全可以使用load
来实现您想要的功能(将html加载到容器中),但是它被视为Get类型请求。 有些人出于某种原因认为POST比GET更安全,但事实并非如此。 因此,如果这样会使您的代码更易于阅读和实现,那就好了。
描述:从服务器加载数据并将返回的HTML放入匹配的元素。
我要提到的最后一件事是注意SQLInjection:
最好总是让您的查询准备好语句。 查询中的ORDER BY和LIMIT子句有点棘手。 但是因为limit只接受一个数字,所以我们可以将其intval()
为int (int)
或使用intval()
干杯。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.