Php 无限滚动-获取动态更新内容的Div ID
所以我在为我的博客创建无限滚动。它应该在卷轴后拉出一根柱子。 我正在通过Ajax实现它。问题是,Ajax发布的post_id与我在一次滚动后获得的post_id相同。我用firebug调试了它。 例如:已经有一个post id=10的post。在我滚动之后,它会在下一篇文章后面附加post id=11。但是在那之后滚动,它只附加post id=11的post,而不附加post id=12的post,依此类推。有什么问题?此(已发布:最后一个)选择器是否有问题?如何获取上次动态更新内容的id 这是我的Index.php:Php 无限滚动-获取动态更新内容的Div ID,php,jquery,html,Php,Jquery,Html,所以我在为我的博客创建无限滚动。它应该在卷轴后拉出一根柱子。 我正在通过Ajax实现它。问题是,Ajax发布的post_id与我在一次滚动后获得的post_id相同。我用firebug调试了它。 例如:已经有一个post id=10的post。在我滚动之后,它会在下一篇文章后面附加post id=11。但是在那之后滚动,它只附加post id=11的post,而不附加post id=12的post,依此类推。有什么问题?此(已发布:最后一个)选择器是否有问题?如何获取上次动态更新内容的id 这是
<?php
include 'resources/init.php';
function get_posts($post_id = null, $tag_id = null){
$posts = array();
$query = "SELECT `posts`.`post_id` AS `posts_id`, `tags`.`tag_id` AS `tags_id`,
`title`, `txt_content`, `img_content`, `date_posted`,`tag_name`
FROM `posts`
INNER JOIN `tags` ON `tags`.`tag_id` = `posts`.`tag_id`";
if(isset($post_id)){
$post_id = (int)$post_id;
$query .= " WHERE `posts`.`post_id` = $post_id";
}
if(isset($tag_id)){
$tag_id = (int)$tag_id;
$query .= " WHERE `tags`.`tag_id` = $tag_id";
}
$query .= " ORDER BY `posts`.`post_id` DESC LIMIT 0,1";
$query = mysql_query($query);
while($row = mysql_fetch_assoc($query)){
$posts[] = $row;
}
return $posts;
}
$posts = (isset($_GET['post_id'])) ? get_posts($_GET['post_id']) : get_posts();
?>
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
</head>
<body>
<a href = "http://localhost/simpleblog/add_post.php">Add a Post</a> | <a href = "http://localhost/simpleblog/add_tag.php">Add a Tag</a> | <a href = "http://localhost/simpleblog/tag_list.php">Show Existing Tags</a> | <a href = ""></a>
<p>
<div id = "AddPosts">
<?php
foreach($posts as $post){
?>
<div class = "Posted" id = "<?php echo $post['posts_id']; ?>">
<h2><a href = "http://localhost/simpleblog/looks/<?php echo $post['posts_id']; ?>-<?php $strings = array(" "); echo str_replace($strings, '-', preg_replace('/[^a-zA-Z0-9 s]/', '', $post['title'])); ?>"><?php echo $post['title'];?></a></h2>
<div><?php echo nl2br($post['txt_content']);?></div>
<div><img src = "http://localhost/simpleblog/<?php echo $post['img_content'];?>"></div>
<p>Posted on <i><?php echo date("F dS\,\ Y", strtotime($post['date_posted'])); ?></i>
in <a href = "http://localhost/simpleblog/tags/<?php echo $post['tags_id'];?>"><?php echo $post['tag_name']; ?></a></p>
<div><a href = "http://localhost/simpleblog/edit_my_looks/<?php echo $post['posts_id'];?>">Edit This Post</a> |
<a href = "http://localhost/simpleblog/delte_my_post/<?php echo $post['posts_id'];?>"> Delete This Post</a></div>
</div>
<?php
}
?>
</div>
<center><img src = "loader.gif" id = "loading-img" width = "200" height = "200" style = "display:none" /></center>
<script>
$(window).scroll(function(){
if ($(window).scrollTop() == $(document).height() - $(window).height()){
$('#loading-img').show();
var post_id = $('.Posted:last').attr('id');
$.post("add_more_posts.php", {post_id: post_id} , function(data){
if(data){
$('#loading-img').fadeOut();
$('#AddPosts').append(data);
}else{
$('#AddPosts').append('Finished Loading!');
}
});
}
});
</script>
</body>
</html>
| | |
好的,这里有一个想法,为什么它可能不起作用
在ajax站点上,跟踪提取的id可能会出现问题。如果您提取的是id=12的记录。你是如何记录这些记录的?因此,您的问题可能是ajax一次又一次地向服务器发送相同的id,这就是为什么它不获取下一条记录
您可以通过以下方式在javascript中创建静态变量:
function static_vars(){
this.id=0;
}
以后你可以从任何函数调用它
static_vars.id
所以,获取记录12后,将static_vars.id更新为13,并将该id发送到服务器以获取reocrd 13
仅当从服务器获得成功响应时,才增加static_vars.id。。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果您选择PDO,。是的,Ajax会一次又一次地发送相同的ID!但是等等,我不知道如何在代码中实现?请帮忙,谢谢!好的,为了帮助您,您必须告诉我您在客户端的方法(jquery/javascript)?你是如何在客户端跟踪记录id或页面索引的?我真的不知道,我以为这会奏效。我从这里学到了分页技术:它在他的视频中起作用,但在我的视频中不起作用。而且我认为他不会跟踪post_ID。如果你只获取一条记录,那么你就不需要学习分页。在客户端,只需发送您想要从服务器获取的记录的id,例如,您想要通过ajax从服务器获取记录6。收到响应后,在客户端将此id更新为7,依此类推。但是如果你不知道如何做这些事情,我建议你提高你的技能。你需要为你的问题开发一个合适的算法。
static_vars.id