【发布时间】:2018-03-30 15:59:35
【问题描述】:
我正在尝试使用 ajax 加载博客文章,这些文章基于 URL id 特定于该博客文章。我在页面加载时有以下内容:
<script>
var userLoggedIn = '<?php echo $userLoggedIn; ?>';
var PostIDFromURL = $_GET['id'];
$(document).ready(function(){
$('#loading').show();
//Original ajax request for loading first posts
$.ajax({
url: "includes/handlers/ajax_load_blog_posts.php",
type: "POST",
data: "page=1&userLoggedIn=" + userLoggedIn + PostIDFromURL,
cache: false,
success: function(data) {
$('#loading').hide();
$('.posts_area').html(data);
}
});
$(window).scroll(function() {
var height = $('.posts_area').height(); //Div containing posts
var scroll_top = $(this).scrollTop();
var page = $('.posts_area').find('.nextPage').val();
var noMorePosts = $('.posts_area').find('.noMorePosts').val();
if ((document.body.scrollHeight == document.body.scrollTop + window.innerHeight) && noMorePosts == 'false') {
$('#loading').show();
var ajaxReq = $.ajax({
url: "includes/handlers/ajax_load_blog_posts.php",
type: "POST",
data: "page=" + page + "&userLoggedIn=" + userLoggedIn + PostIDFromURL,
cache: false,
success: function(response) {
$('.posts_area').find('.nextPage').remove(); //Removes current .nextpage
$('.posts_area').find('.noMorePosts').remove(); //Removes current .nextpage
$('#loading').hide();
$('.posts_area').append(response);
}
});
} //End if
return false;
}); //End (window).scroll(function()
});
</script>
处理程序ajax_load_blog_posts.php如下:
$limit = 8; //Number of posts to be loaded per call
$PostIDFromURL = $_GET['id'];
$posts = new Blog_Post($con, $_REQUEST['userLoggedIn']);
$posts->loadBlogPosts($_REQUEST, $limit, $PostIDFromURL);
公共函数loadBlogPosts()如下:
public function loadBlogPosts($data, $limit, $PostIDFromURL) {
$page = $data['page'];
$userLoggedIn = $this->user_obj->getUsername();
$PostIDFromURL = $PostIDFromURL['id'];
if($page == 1)
$start = 0;
else
$start = ($page - 1) * $limit;
$str = ""; //String to return
$data_query = mysqli_query($this->con, "SELECT * FROM blog_posts WHERE deleted='no' AND admin_panel_id='$PostIDFromURL' ORDER BY id DESC");
if(mysqli_num_rows($data_query) > 0) { ...blah blah blah
我没有收到任何错误,只是看到加载图标滚动。我知道只要我不请求特定于该文章 ID 的帖子,我就可以检索所有这些 b/c。我认为问题在于数据被发送到这里:data: "page=1&userLoggedIn=" + userLoggedIn + PostIDFromURL, 和上面的声明var PostIDFromURL = $_GET['id'];
我已经完成了我能做或找到的任何事情,我们将不胜感激。
问候。
【问题讨论】:
-
对于您的数据:“page=1&userLoggedIn=" + userLoggedIn + PostIDFromURL,。你错过了你的 id 参数吗?所以应该是 data: "page=1&userLoggedIn=" + userLoggedIn + "&id=" + PostIDFromURL ?您还应该清理您的数据,以确保您免受 SQL 注入等影响。
-
我为原始的 ajax 请求尝试了这个...数据:“page=1&userLoggedIn=" + userLoggedIn + "&id=" + PostIDFromURL, & 这个用于滚动功能...数据:"页面=" + page + "&userLoggedIn=" + userLoggedIn + "&id" + PostIDFromURL,但是我仍然得到同样的结果。加载 gif。感谢您提供有关清理数据的提示,稍后将添加准备好的语句。
-
data: "page=" + page + "&userLoggedIn=" + userLoggedIn + "&id=" + PostIDFromURL,抱歉这是用于滚动功能的。
-
没问题,你上面提到的最后一行代码,看起来 &id 后面缺少“=”,例如(&id=)
-
是的,我明白了。不幸的是,它仍然没有加载帖子;我只是得到加载图标。