2008-10-26 58 views
1

我有两个PHP文件,我需要链接。我如何使用PHP将文件链接在一起?我想要的效果是让用户点击一个按钮,在页面上处理一些信息,然后结果显示在不同的页面上,具体取决于用户点击的按钮。谢谢如何链接PHP中的文件?

回答

2

我把你的问题解释成与其他人不同。

这听起来像你想创建一个页面上有两个按钮,并执行你现有的两个PHP文件之一,这取决于哪个按钮被按下。

如果这是正确的,那么这是一个简单的框架来实现这一点。在这个例子中,page_1.php和page_2.php是你现有的两个PHP文件。

请注意,如果你正在做很多这些东西,你可能需要阅读MVC(模型 - 视图 - 控制器)模式和/或尝试一些流行的PHP框架。这超出了这个问题的范围,但基本上这两件事将为您构建代码构建一个良好的基础,从而使事情保持可管理性并且不会变得混乱。

<?php 

if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
    switch ($_POST['command']) { 
    case 'show_file_1': 
     include 'file_1.php'; 
     break; 
    case 'show_file_2': 
     include 'file_2.php'; 
     break; 
    } 
    exit; 
} 

?> 
<form method="POST"> 
    <button name="command" value="show_file_1">Show file 1</button> 
    <button name="command" value="show_file_2">Show file 2</button> 
</form> 

注:我只包含相关的HTML和PHP来说明这一点。很显然你会添加<html>,<head><body>标签,并且可能会对PHP进行混洗和模块化,具体取决于您要添加的内容。

更新:我还应该补充说,如果您现有的PHP文件中包含任何POST自身的表单,您可能需要将include更改为重定向。那就是:

include 'file_1.php'; 

将成为:

header('Location: http://mysite.com/file_1.php'); 

很难知道该怎么不知道你的现有文件的本质建议。

编辑:我正在回应OP的第二篇文章,因为我没有足够的评论声望。哪个行号会出现意外的;错误?如果我不得不猜测,我会说在case 'show_file_1'case 'show_file_2'行的末尾检查你使用的是:(冒号)而不是;(分号)。

8

听起来像你可能想要一个HTML表单:

<form method="post" action="other_file.php"> 
    <input name="foo" type="..."... /> ... 
</form> 

然后$_POST["foo"]将包含other_file.php该输入的值。

0

在PHP最基本的设置中,可以使用两个独立的文件:一个生成表单,第二个处理响应。您还可以使用一个文件来处理这个问题,该文件检查表单是否已发布。

if (isset($_POST['foo'])) { ... } 

if ($_SERVER['REQUEST_METHOD'] == 'POST') { ... } 

一旦你超过这个水平,有一定更简洁的方式,让你保持你的逻辑和你分开的接口来构建脚本,但我从这个问题猜测你还不在那里。

+0

嗯,这是一个相当居高临下的教学方法。为什么不解释为什么要保持观点和逻辑分离并举个简单的例子? – eyelidlessness 2008-10-26 07:58:50