我制作了一个 HTML 文件,其中仅包含一个带有文本框和提交按钮的表单。
该表单调用一个 php,该 php 将检查文本框中的文本是否表示数据库中的寄存器。
HTML 文件:
<form action="index.php" method="post">
<input type="text" name="nome"/>
<input type="submit" value="Rodar"/>
</form>
PHP 文件:
<?php
$nome = $_POST['nome'];
$pdo = new PDO('mysql:host=myhost;dbname=mydb', 'user', 'pw');
if ($pdo->query("SELECT * from renatinho where nome='".$nome."'")->fetchColumn() > 0){
foreach($pdo->query("SELECT * from renatinho where nome='".$nome."'") as $row) {
echo $row['id'] . $row['nome'];
}
$pdo = null;
}
else{
echo "Não há ninguém com esse nome.";
}
?>
问题是:当我按下按钮时,它会调用并显示 php 文件。 php 文件没有布局。我希望结果显示在 HTML 文件中,因为我不想制作一个全新的页面来显示这些值。
我希望结果与表单位于同一页面中。
我已经在谷歌上搜索了 2 天,但我不知道到底要搜索什么。我得到的所有结果都是显示 php 文件的教程,这就是我现在正在做的,但这不是我想要的。
最佳答案
您有几个选择:
- 将这两个文件合并为一个包含 HTML 和 PHP 的 PHP 文件。将您的 PHP 代码放在脚本的顶部。检查表单是否像这样提交:
if ($_POST['submit'] == 'Rodar') { /* process form */ }
.如果未提交表单,处理表单的代码将被跳过,只显示表单。如果表单已经提交,将被处理并再次显示表单。这可能是最常见的解决方案。 - 处理完 PHP 文件中的表单后,使用
header('Location: html_file.html'); die();
重定向回 HTML 文件.只需确保在执行此操作之前没有向屏幕输出任何内容(即echo
)。 - 您可以使用 AJAX 提交表单。这是通过 HTTP 对您的服务器进行的 JavaScript 调用,无需重新加载页面。只需谷歌 AJAX,您就会找到一大堆教程。
澄清一下,您可能没有意识到可以在 .php 文件中组合 HTML 和 PHP。你可以这样做。你要么echo
HTML 到屏幕,或者跳出你的 <?php
带有 ?>
的标签标记并开始编写您的 HTML。
关于php - HTML Form 到 PHP 如何返回一个值而不是显示文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26435296/