2015-11-27 52 views
0

在我的主頁,我通過這個代碼顯示我的表的最後三行:如何加載更多的帖子而無需再次加載整個頁面?

$result = mysql_query("SELECT id, title, date, text FROM news WHERE hshs=1 ORDER BY date DESC LIMIT $p") or die(mysql_error()); 

$p來自:

$p = $_GET['page']; 

if (empty($p)) { 
    $p = 2; 
    $more = 4; 
} 
else{ 
    if ($p < $postnum) { 
     $more = $p + 2; 
    } 
    else{ 
     $finish = 1; 
    }  
} 

$postnum是行數。

然後,我有這樣的行加載更多帖子:

if ($finish != 1) { 
    echo '<center><strong><a id="loadmore" href="?page='.$more.'">Load more posts...</a></strong></center>'; 
} 

這美麗的,它的工作。但我有一個問題。我不想再加載整個頁面來加載更多的帖子。因爲這會從頂部再次顯示頁面!我希望頁面保持原狀,而不用將用戶滾動到頂部,然後加載更多帖子。

希望你能理解我! :)

+1

使用'ajax'加載數據而無需刷新頁面。參考:http://api.jquery.com/jquery.ajax/ – Samir

+0

請嘗試http://api.jquery.com/jquery.ajax/ – arunrc

+0

以下是一個示例http://www.sanwebe.com/2013/ 03 /加載,更以結果爲從數據庫 –

回答

0

步驟1)通過點擊「加載更多帖子」來調用Ajax請求。

步驟2)PHP將返回更多的帖子作爲對Ajax請求的響應。

步驟3)將Ajax結果添加到適當的div(最好使用jQuery)。

注意:在MySQL查詢中使用限制以實現正確的分頁機制。

0

使用jQuery

jQuery(document).on('click', '#loadmore', function() { 

    jQuery.ajax({ 

     url: "./path-to-your-sql-load", 
     data: { 

      ajax: '1', 
      page: '<?php echo $page+1; ?>' 

     }, 
     method: 'get', 
     success: function(response) { 

      console.log(response); 
      jQuery('#results').append(response); 

     } 

    }); 

}); 

而在你的SQL負載,可以檢查它是否是阿賈克斯這樣的:

if($_GET[ 'ajax' ] == '1'): 

    // ajax 

else: 

    // no ajax 

endif; 
相關問題