我在home.php中构建了两个函数来在我的Feed中加载+10个帖子。并且它有一个缺陷加载了两个新帖子。它复制了它所包含的整个home.php。这就是标题,提要,状态持有者和加载更多选项卡。我不知道为什么。如何阻止这种情况发生。也许可以将流放在自己的页面中并自行调用它?
<script>
var global_streamcount=20;
function refreshstream()
{
$.ajax({
method: 'get',
url : 'home.php?limit='+global_streamcount,
dataType : 'text',
success: function (text) { $('#homestatusid').prepend(text); }
});
}
</script>
<script>
function checkautoload(){
global_streamcount=global_streamcount+10;loadstream('home.php','homestatusid',global_streamcount);
}
</script>
HTML LOAD MORE
<div class="stream_show_posts" onClick="global_streamcount=global_streamcount+10;refreshstream();">Show More Posts</div>
PHP
if(isset($_GET['limit'])){
$sqllimit = $_GET['limit'];
}else{
$sqllimit = 20;
}
$call="SELECT * FROM streamdata WHERE streamitem_target= $following_string OR streamitem_creator = $following_string OR streamitem_creator IN $friendlist AND streamitem_target IN $friendlist ORDER BY streamitem_timestamp DESC LIMIT $sqllimit";
答案 0 :(得分:1)
调用应该是另一个脚本,但是如果要保留在同一个文件中,则必须退出脚本并仅从数据库中输出已提取的项目。例如:
if(isset($_GET['limit'])){
if(isset($_GET['limit'])){
$sqllimit = (int)$_GET['limit'];
}else{
$sqllimit = 20;
}
$call="SELECT * FROM streamdata WHERE streamitem_target= $following_string OR streamitem_creator = $following_string OR streamitem_creator IN $friendlist AND streamitem_target IN $friendlist ORDER BY streamitem_timestamp DESC LIMIT $sqllimit";
echo "<div>Your contents echoed with results from db</div>"
die;
}
// rest of the page ..
答案 1 :(得分:0)
我会使用load() function来完成此任务:
<div class="stream_show_posts">Show More Posts</div>
<script>
$('div.stream_show_posts').on('click', function() {
global_streamcount=global_streamcount+10;
$('#your_posts_div_element').load('home.php?limit='+global_streamcount+' #your_posts_div_element');
});
</script>
这个函数基本上会从名为“your_posts_div_element”的元素中获取所有数据,并将旧数据替换为new到页面上的相同元素。
另外,请注意,不建议直接在元素中使用onClick处理程序 - 这个,我使用on()函数将Click事件分配给DIV。