2013-07-09 109 views
0

的問題是相當簡單的,但我一直在四處尋找一個小時,一無所獲:的網頁,索引頁稍微改變

做一個網頁,是完全一樣的主頁,但具體div有改變內容

例如index.html的:

<html> 
<head> 
    <title>title</title> 
    <style type="text/css"> 
    /* css goes here */ 
    </style> 
</head> 
<body> 
    <div id="stay">I wont change</div> 
    <div id="change">I will change</div> 
</body> 
</html> 

,所以我希望能夠編寫一個頁面,以便它繼承從索引頁整個HTML(不復制的代碼),但(具有編號#change)具有不同的內容。我會如何去做這件事?

+1

什麼樣的行爲觸發了這個變化? –

+0

它不是一個動作...它是一個不同的頁面,它與索引頁面具有相同的佈局和所有內容,但是一個div的內容被更改了......我懷疑唯一的方法是複製整個索引頁面代碼並更改那一個div –

+1

你應該看看像Smarty這樣的模板引擎。在那裏,你可以分開頁眉和頁腳的tempalte,主要內容是不同的頁面之間的部分。使所有事情都變得更清潔,更容易維護。 – OptimusCrime

回答

3

你並不真的「繼承」代碼片段,但我知道你正在嘗試重用頁面內容。從您的發佈代碼中,很難確切地說明變化與索引的不同之處。它只是一個內容更改或索引頁是否沒有該div?

您有幾個選項。如果DIV的只是內容正在改變,你可以使用相同的PHP頁面,然後使用jQuery改變div的內容,所以像

的index.php

<? php include("page.php"); ?> 

其他頁面

<? php include("page.php"); ?> 
// javascript to modify div 

你可以打破網頁分割成塊,只是它們包括根據需要,所以你可以有一個top.php和bottom.php和索引頁可以做

<? php include("top.php"); ?> 
<? php include("bottom.php"); ?> 

然後你類似的頁面可以做類似

<? php include("top.php"); ?> 
// custom stuff here 
<? php include("bottom.php"); ?> 

如果沒有這些解決方案的工作,你總是可以使用一個模板引擎創建一個頁面模板,儘管這可能是有點多爲你的情況。

0

我看到你在php中標記了這個問題所以,我會給你包含php實現的答案。

創建3頁。 index.phpabout.phpfoo.php

的目的是爲了表明在index.php一些內容,但在about.php

調用此頁foo.php

<html> 
<head></head> 
    <body> 
     <p> Show this in index.php </p> 
     <?php if($_SERVER['PHP_SELF'] === 'about.php'): ?> 
     <p> Show this in about.php </p> 
     <?php endif; ?> 
    </body> 
</html> 

的所有內容現在,所有你需要做的是...包括foo.php在這兩個頁面。

0

讓你想要的頁面,你可以去這樣做:

<html> 
<head> 
    <title>title</title> 
    <style type="text/css"> 
    /* css goes here */ 
    </style> 
</head> 
<body> 
    <div id="stay">I wont change</div> 
    <?php 
     if(basename($_SERVER['PHP_SELF'] == "other-page.php")){ ?> 

     <div id="change">I will change</div> 

     <?php }else{ ?> 

     <div id="change">Original div</div> 

     <?php } ?> 
</body> 
</html> 

這需要的文件名,並根據您可以更改內容(如果只有一個頁面,否則寫一個函數/類的基礎上)。

0

有很多方法可以做到這一點。這裏有兩個,各有各的優缺點。首先,如果你根本不想修改頁面,你可以添加一個小的PHP代碼段,其中包含一個通過GET變量傳入的頁面。例如

<html> 
<head> 
    <title>title</title> 
    <style type="text/css"> 
    /* css goes here */ 
    </style> 
</head> 
<body> 
    <div id="stay">I wont change</div> 
    <div id="change"><?php require($_GET['page']); ?></div> 
</body> 
</html> 

將意味着使用URL mypage.php?page=home.php會自動包含一個名爲home.php到該分區文件的內容。

另一種方法是將該頁分成2個部分,並將它們包括在您使用的任何其他頁面中。例如,分裂代碼到2個獨立的文件,如

top.php:

<html> 
<head> 
    <title>title</title> 
    <style type="text/css"> 
    /* css goes here */ 
    </style> 
</head> 
<body> 
    <div id="stay">I wont change</div> 
    <div id="change"> 

bottom.php:

</div> 
</body> 
</html> 

然後在你的PHP文件,你可以使用下面的

require("top.php); 
MY CONTENT HERE 
require("bottom.php); 

請記住,如果在此方法中,您將需要使用echo來輸出html代碼,如果它在內和?>標籤

希望這有助於。

0

你不能這樣做純HTML。

要做到這一點在PHP中,首先要創建模板文件,如下所示:(template.php文件)

<html> 
<head> 
    <title>title</title> 
    <style type="text/css"> 
    * css goes here */ 
    </style> 
</head> 
<body> 
    <div id="stay">I wont change</div> 
    <div id="change"><?=$main_content?></div> 
</body> 
</html> 

現在,讓我們說,你想一個「聯繫我」頁面。

<?php 
    // in contact.php 
    $main_content = "Contact me at [email protected] 

    include "template.php"; 
?> 

這將template.php文件的內容寫入頁和回聲出$ main_content的值#DIV內改變現在

,這通常是令人難以接受的,因爲管理您的變量變得困難,因爲模板的大小增加。爲了讓事情保持健全,所有其他答案都建議使用模板引擎。