【发布时间】:2017-06-29 00:23:50
【问题描述】:
在我当前的网站项目中,我有大量在整个项目中重复的 php 和 html 代码。例如,每个页面都具有与所有其他页面相同的页眉和页脚。所以,为了模块化我的代码,我为这些东西创建了单独的 php 文件。这是我的 header.php 文件的示例。
//header.php
<?php
if(isset($_POST['submittext'])) {
echo $_POST['sometext'];
}
?>
<div id="header">
<form action="header.php" method="post">
<input type="text" name="sometext">
<input type="submit" name="submittext">
</form>
<div id="somediv">
<?php
//Some more php
?>
</div>
</div>
下面是一个文件示例,其中包含页面独有的代码,与页眉或页脚不同。将此文件称为 home.php。
//home.php
<?php
//Some php
?>
<!DOCTYPE HTML>
<html>
<head>
<!-- Style sheets, etc. -->
</head>
<body>
<?php include('header.php'); ?> //Here I include the above file
<div id="main">
<!-- Html for everything below the header -->
</div>
</body>
</html>
现在的问题是我在 header.php 文件中有一个表单。所以当我提交表单时,action 属性说要重新加载 header.php。但如果它这样做了,那么 home.php 中的其他代码就不会加载,例如“main”div。所以我的问题是,我如何模块化我的代码以防止非常长且难以阅读的 php 文件,同时还能够加载我的所有内容?我的第一个想法是在我处理完 header.php 文件中的表单后将header('Location: home.php'); 放入,但是如果我在另一个页面中包含 header.php 文件,比如 home2.php,它会将我重定向回 home.php而不是 home2.php。
【问题讨论】:
-
the action attribute says to reload header.php但不是吗?它说post.php。 -
对不起,我是说header.php
-
好吧...如果这不是您想要的,请不要将
header.php放在那里。 -
header.php 是我想要的操作属性。 post.php 在那里,因为它是一个错字,我在你的第二条评论之前已经修复了。我想要 header.php 作为操作的原因是因为我想模块化我的代码,以便处理 header.php 中处理表单的 php 代码保留在 header.php 文件中。
-
我完全不知道您遇到了什么问题。也许其他人会弄清楚。