如何通过AJAX将变量添加到PHP脚本中

时间:2019-01-07 01:47:28

标签: php jquery ajax

我有2个变量,我试图将这些变量传递给我的PHP脚本以在我的sql语句中使用,但是它似乎并不想为我工作。有什么想法为什么我无法获取$ start和$ limit变量的值?我在这里想念什么吗?

这是我的index.php页面上的2个javascript变量:

var start = 0;
var limit = 5;
var reachedMax = false;

$(window).scroll(function(){
    if($(window).scrollTop() == $(document).height() - $(window).height()){
        infiniteScrollData();
    }
});

$(document).ready(function(){
    //infinite scroll
    infiniteScrollData();
}

然后我的javascript文件中有我的javascript函数,该函数会将这2个变量发送到我的php页面:

function infiniteScrollData(){

  if(reachedMax){
      return;
  } 
$.ajax({
        method: "POST",
        url: "sortResults.php",
        dataType: "json",
        data:  {
            infiniteScrollData: 1,
            start: start,
            limit: limit
            },
        success: function(response){
            if(response == "reachedMax")
                reachedMax = true;
                else{
                    start += limit;
                    $("#rowDisplayResults").append(response);
            }   
        }
});
}

然后我在我的php脚本中有两个变量,如下所示:

if(isset($_POST['infiniteScrollData'])){
    $start = check_input($_POST['start']);
    $limit = check_input($_POST['limit']);

    $query = "SELECT * FROM topics DESC LIMIT :start, :limit";
    $stmt = $conn->prepare($query);
    $stmt->bindParam(':start', $start, PDO::PARAM_INT);
    $stmt->bindParam(':limit', $limit, PDO::PARAM_INT);
    $stmt->execute();
}

检查输入只是清除数据的功能

function check_input($dirtData) {
    $dirtData = trim($dirtData);
    $dirtData = strip_tags($dirtData);
    $dirtData = stripslashes($dirtData);
    $dirtData = htmlspecialchars($dirtData);
    $dirtData = filter_var($dirtData, FILTER_SANITIZE_STRING);
    return $dirtData;
}

2 个答案:

答案 0 :(得分:1)

check_input方法似乎还可以。

  • 检查您是否开始,首先将vars限制为您的js代码
  • 检查您的网址是否正确

答案 1 :(得分:0)

要将数据发送到服务器(PHP),请使用FormData对象。

有关更多信息,请检查链接。

https://developer.mozilla.org/en-US/docs/Web/API/FormData/FormData