2014-02-19 101 views
0

我一直在努力學習大部分,因爲我以前的問題,我已經提出了一些這可能看起來簡單或公然在我的頭 - 這說我通過同行解釋/示例/建議學習最好提前致謝。如何在不重新加載頁面的情況下更改php include?

我已經使用了我在此學到的知識來構建我的個人網站的基本結構。這個概念是一個右對齊的手風琴菜單,從頁面到頁面依然保留,而左側區域的內容和背景將根據菜單選擇而改變 - 基本上類似於用於查看的框架或內聯框架。

問題: 我有一些js知識,我知道我可以通過getElementById循環一些內容,但因爲這些將會在畫廊中,我不想通過加載54個圖像來拖慢速度在背景中。我也知道,我可以在PHP的側邊欄鏈接中創建縮略圖,並完全加載頁面,但因爲我不想菜單改變,我一直在試圖找出最好的方法來解決這個問題。到目前爲止,我聽說過提及PHP,JQuery和AJAX(我知道它的名稱,但對我而言是新的)。下面是我想要做的代碼示例:

<body> 
<div id="all"> 
    <div id="live-area"> 

    <?php include("blog.php") ?> 

    </div> 
    <div id="side-bar-area"> 
    <div id="sidebar-header"> 
     <h3>Title</h3> 
     <h1>Title</h1> 
    </div> 
    <div id="nestedAccordion"> 
     <h2>Portfolio</h2> 
     <div> 
     <h3>Branding</h3> 
     <div> 
      <ul> 
      <li class="thumbs"> 
       <a href="#"><img src="images/thumbs/example1.jpg"/></a> 
       <a href="#"><img src="images/thumbs/example2.jpg"/></a> 
       <a href="#"><img src="images/thumbs/example3.jpg"/></a> 
       <a href="#"><img src="images/thumbs/example4.jpg"/></a> 
       <a href="#"><img src="images/thumbs/example5.jpg"/></a> 
       <a href="#"><img src="images/thumbs/example6.jpg"/></a> 
       <a href="#"><img src="images/thumbs/example7.jpg"/></a> 
       <a href="#"><img src="images/thumbs/example8.jpg"/></a> 
       <a href="#"><img src="images/thumbs/example9.jpg"/></a> 
     </li> 
      </ul> 
     </div> 
     <h2>Blog</h2> 
     <div> 
      <ul style="margin:0px;"> 
      <li>entry 1</li> 
      <li>entry 2</li> 
      </ul> 
     </div> 
     <h2>About</h2> 
     <div> 
      <ul style="margin:0px;"> 
      <li>About</li> 
      <li>Resume</li> 
      <li>Accolades</li> 
      <li>Contact</li> 
      </ul> 
     </div> 
    </div> 
    </div> 
</body> 

基於上述,我要的是,每當任何諸如<a href="#"><img src="images/thumbs/example1.jpg"/></a>選擇菜單中的項目將改變的內容<?php include("blog.php") ?>無需重新加載頁面。

首先,這是可行的嗎?其次,有沒有人有過這方面的新手建議 - 無論是基本的教程或外行的一個方法?

+0

你的意思是,如果你選擇一個圖像,它會加載一些與它相關的內容? – bargoras

+0

是的,AJAX和jQuery將是一個很好的開始圖片點擊的地方,你可以進行一次AJAX調用,返回一個不同的PHP頁面,並改變「實時區域」 – Chitowns24

回答

2

當您向標籤添加jquery時,您可以使用AJAX執行服務器端請求並加載新內容並替換現有內容。

$.ajax({ 
    url: 'http://example.org/other-page.php', 
    dataType: 'html' 
}) 
.done(function(data) { 
    // Assuming the request returns HTML, replace content 
    $('#live-area').html(data); 
}); 
1

試試這個,

html

<div id="live-area"> 
    <?php include("blog.php") ?> 
</div> 
<li class="thumbs"> 
    <a href="#" data-page="page1.php"><img src="images/thumbs/example1.jpg"/></a> 
    <a href="#" data-page="page2.php"><img src="images/thumbs/example2.jpg"/></a> 
    <a href="#" data-page="page3.php"><img src="images/thumbs/example3.jpg"/></a> 
    <a href="#" data-page="page4.php"><img src="images/thumbs/example4.jpg"/></a> 
</li> 

script

<script> 
$('.thumbs a').click(function(){ 
    var page = $(this).attr('data-page'); 
    $.ajax({ 
     type:'POST', 
     url:page, 
     success: function(response){ 
      $('#live-area').html(response); 
     } 
    }); 
}) 
</script> 
相關問題