php - HTML Form 到 PHP 如何返回一个值而不是显示文件?

标签 php database

我制作了一个 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 文件的教程,这就是我现在正在做的,但这不是我想要的。

最佳答案

您有几个选择:

  1. 将这两个文件合并为一个包含 HTML 和 PHP 的 PHP 文件。将您的 PHP 代码放在脚本的顶部。检查表单是否像这样提交:if ($_POST['submit'] == 'Rodar') { /* process form */ } .如果未提交表单,处理表单的代码将被跳过,只显示表单。如果表单已经提交,将被处理并再次显示表单。这可能是最常见的解决方案。
  2. 处理完 PHP 文件中的表单后,使用 header('Location: html_file.html'); die(); 重定向回 HTML 文件.只需确保在执行此操作之前没有向屏幕输出任何内容(即 echo )。
  3. 您可以使用 AJAX 提交表单。这是通过 HTTP 对您的服务器进行的 JavaScript 调用,无需重新加载页面。只需谷歌 AJAX,您就会找到一大堆教程。

澄清一下,您可能没有意识到可以在 .php 文件中组合 HTML 和 PHP。你可以这样做。你要么echo HTML 到屏幕,或者跳出你的 <?php带有 ?> 的标签标记并开始编写您的 HTML。

关于php - HTML Form 到 PHP 如何返回一个值而不是显示文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26435296/

相关文章:

php - 如何确认 mysql 数据库中键列表的存在

php - 在 foreach 循环内使用开关时出现奇怪的输出

java - Android SQLite 中的 WHERE 子句

sql-server - WAL序号无限大?

mysql - 我应该如何解析MySQL中的--secure-file-priv?

php - 从 Android 手机更新数据库失败

php - 在array_filter()之后,我如何重置键以从0开始按数字顺序排列

php - 方法 Illuminate\Translation\Translator::getFromJson 不存在

json - 从 PostgreSQL 中的函数返回中删除双引号

database - 阿姆斯特朗公理证明