2013-07-09 61 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内改变现在

,这通常是令人难以接受的,因为管理您的变量变得困难,因为模板的大小增加。为了让事情保持健全,所有其他答案都建议使用模板引擎。