我有两个需要链接的PHP文件。如何使用PHP将文件链接在一起?我想要的效果是让用户单击一个按钮,在页面上执行一些信息,然后结果显示在不同的页面中,具体取决于用户单击的按钮。谢谢
答案 0 :(得分:8)
听起来你可能想要一个HTML表单:
<form method="post" action="other_file.php">
<input name="foo" type="..."... /> ...
</form>
然后$_POST["foo"]
将包含other_file.php中该输入的值。
答案 1 :(得分: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的第二篇文章,因为我没有足够的声誉来发表评论。哪个行号会出现意外的;
错误?如果我不得不猜测,我会说在:
和{{1}的末尾检查你是否使用了;
(冒号)而不是case 'show_file_1'
(分号)行。
答案 2 :(得分:0)
在PHP最基本的设置中,您可以使用两个独立的文件:一个生成表单,第二个处理响应。您还可以使用一个文件来处理此问题,该文件检查表单是否已发布。
if (isset($_POST['foo'])) { ... }
或
if ($_SERVER['REQUEST_METHOD'] == 'POST') { ... }
一旦超出这个级别,就必须有更简洁的方法来构建脚本,以便保持逻辑和界面分离,但我猜测你还没有这个问题。