2014-01-28 91 views
1

我一直在試圖找出一段時間,但因爲我找不到解決方案,希望有人能幫助我。包括不同的頁面

我做了一個網站,其中目前有3個不同的菜單選項,家庭聯繫和訂單頁面。哪些在不同的子文件夾中。我在主文件夾中有index.php,從那裏我有一個名爲includes和layout的文件夾。在包括我有contact.php,orderpage.php。在佈局中,例如,我有.css和menu.php。

現在我需要使用include'something.php';包括我需要的所有頁面。所以你不會被重定向到另一個頁面,每當你點擊菜單中的另一個選項時,它將只包含一個不同的頁面。

我希望我的問題很明確,如果不是,請告訴我應該包括什麼。

+0

php不能在客戶端具有'include'功能。你想要什麼? – 2014-01-28 14:55:31

+0

你在代碼方面做了什麼? – Onimusha

+0

在google中查看術語'ajax'。那是你需要的。 – arkascha

回答

0

從它的問題中讀取像這樣: 您嘗試一次加載所有頁面,然後簡單地在它們之間切換。

問題: PHP不工作像那樣。已加載頁面上的動態內容只能用Javascript處理。在您輸入頁面後,PHP僅運行服務器端,並且所有代碼已經運行。

你的確可以做的是在單獨的Div容器中一次加載所有內容,然後通過隱藏顯示它們來切換它們。但你真的應該爲你的每個頁面做一個分離頁面。所以點擊你切換到正確的頁面。 如果你加載一個PHP頁面,你只能使用這個頁面的代碼。不要擔心加載模板文件,如CSS或圖像新。在第一次訪問網頁時,用戶下載所有文件,如果他們不更改,他已經擁有了它們。

+0

這就像你說我已經有不同的聯繫訂單和家庭頁面。我在同一頁面上包含'menu.php';'和'include'index.php';'。但是當他們在menu.php中選擇了不同的內容時,只有include應該改變,例如從index.php改爲contact.php。 –

+0

啊,我想我得到你想做的事情。你需要1個index.php,然後一個Case切換渲染Additionaly的內容。爲此,您需要在鏈接上提供一些附加信息(如獲取值),然後使用「案例切換」功能來包含所需的文件。但試着總結一下,所以只有對這個特殊案例很重要的東西纔會包括在內。有了一些數據庫魔術,你也可以自動化這個。然後進入小型內容管理系統的方向 – Panade

0

如果我理解正確。您希望將3個頁面加載到佈局的內容塊中,而無需重定向到新頁面。你不能使用PHP作爲你想要的是客戶端。

  1. 加入jQuery庫

  2. 使用以下內容作爲菜單的例子。 data-page應該包含您要包括的實際文件名:

HTML:

<a href="javascript:;" class="page" data-page="home">Home</a> 
<a href="javascript:;" class="page" data-page="contact">Contact</a> 
<a href="javascript:;" class="page" data-page="order">Order</a> 

在你的HTML,有ID的DIV爲要在內容加載

<div id="contents"></div> 

添加腳本以將頁面加載到div中

<script> 
    $(".page").click(function(){ 
     $("#contents").load("includes/"+$(this).data("page")+".php"); 
    }); 
</script> 

對不起,因爲我在飛機上輸入它,所以如果有錯誤,請讓我知道。你顯然需要了解更多關於jQuery的內容,如果上述內容不清楚,但這是我的方式(不是說它是展示頁面的最佳方式)

  1. 這不會讓你發送例如不添加更多代碼的聯繫頁面鏈接
  2. 當頁面加載時,這不會加載主頁。你可以使用jquery trigger來實現這一點。