[英]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.