我有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;
}
答案 0 :(得分:1)
check_input方法似乎还可以。
答案 1 :(得分:0)
要将数据发送到服务器(PHP),请使用FormData对象。
有关更多信息,请检查链接。
https://developer.mozilla.org/en-US/docs/Web/API/FormData/FormData