正在加载+10个帖子

时间:2012-09-06 07:12:20

标签: php javascript jquery html ajax

我在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";

2 个答案:

答案 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。