簡體   English   中英

計數器無法正常工作

[英]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放入匹配的元素。

http://api.jquery.com/load/

我要提到的最后一件事是注意SQLInjection:

什么是SQL注入?

最好總是讓您的查詢准備好語句。 查詢中的ORDER BY和LIMIT子句有點棘手。 但是因為limit只接受一個數字,所以我們可以將其intval()為int (int)或使用intval()

干杯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM