Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过AJAX将变量添加到PHP脚本中_Php_Jquery_Ajax - Fatal编程技术网

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

如何通过AJAX将变量添加到PHP脚本中,php,jquery,ajax,Php,Jquery,Ajax,我有两个变量,我正试图将它们传递给我的PHP脚本,以便在sql语句中使用,但它似乎不适合我。知道为什么我不能为$start和$limit变量获取值吗?我是不是遗漏了什么 以下是my index.php页面上的2个javascript变量: var start = 0; var limit = 5; var reachedMax = false; $(window).scroll(function(){ if($(window).scrollTop() == $(document).he

我有两个变量,我正试图将它们传递给我的PHP脚本,以便在sql语句中使用,但它似乎不适合我。知道为什么我不能为$start和$limit变量获取值吗?我是不是遗漏了什么

以下是my 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();
}
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);
            }   
        }
});
}
然后,我的javascript文件中有我的javascript函数,它将把这两个变量发送到我的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;
}

检查输入法是否正常

  • 检查是否已经开始,首先将变量限制在js代码中
  • 检查您的URL是否为正确的URL
要将数据发送到服务器(PHP),请使用FormData对象

有关更多信息,请查看链接


check\u input()函数是什么?没有本机的check\u input()函数,能否显示check\u input()的代码。它是类的一部分吗?我在问题中添加了check输入函数。您的代码看起来不错,所以您应该检查出了什么问题。您的意思是,您无法获取
$start
$limit
变量的值,但最好添加
var\u dump($start,$limit)