0

フィードに +10 件の投稿をロードするために、home.php に 2 つの関数を作成しました。そして、2つの新しい投稿を1つの欠陥で正しくロードします. 含まれている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 もっと読み込む

<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";
4

2 に答える 2

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 ..
于 2012-09-06T07:21:18.743 に答える
0

これを実現するには、 load() 関数を使用します。

<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」という要素からすべてのデータを取得し、ページ上の同じ要素に古いデータを新しいものに置き換えます。

また、要素で onClick ハンドラーを直接使用することは推奨されなくなったことに注意してください。これは、on() 関数を使用して、クリック イベントを DIV に割り当てました。

于 2012-09-06T07:25:45.253 に答える