如何实现PHP提交按钮保存数据后跳转至新页面?
问题解答
完全可行,但你当前的代码存在错误,需要调整才能实现「保存数据+页面跳转」的需求。
问题分析
你现在用<a>标签充当提交按钮是错的——<a>标签只会触发页面跳转,不会提交表单数据,PHP自然没法接收并保存用户输入。要实现目标,需要分两步:先通过表单提交把数据传给PHP处理保存,再由PHP触发页面跳转。
修正方案
1. 修复前端表单结构
先确保页面有完整的<form>标签,并用标准的提交按钮(而非<a>)触发表单提交:
<form method="POST" action=""> <!-- 这里放你的所有表单输入字段,比如: --> <input type="text" name="nome" placeholder="Nome"> <input type="number" name="plantada" placeholder="Plantada"> <!-- 其他输入字段... --> <!-- 正确的提交按钮 --> <button type="submit" name="submit" id="submit">提交并跳转</button> </form>
2. PHP处理数据并跳转
在PHP代码中,完成数据保存逻辑后,用header()函数实现跳转:
<?php if (isset($_POST['submit'])) { // 接收表单数据 $nome = $_POST['nome']; $plantada = $_POST['plantada']; $ctc = $_POST['ctc']; $tabela = $_POST['tabela']; $vporcento = $_POST['vporcento']; $prnt = $_POST['prnt']; // 这里添加你的数据保存逻辑,比如写入数据库、生成文件等 // 示例(写入数据库): // $db = new PDO('mysql:host=localhost;dbname=你的库名', '用户名', '密码'); // $stmt = $db->prepare("INSERT INTO 表名 (nome, plantada, ctc, tabela, vporcento, prnt) VALUES (?, ?, ?, ?, ?, ?)"); // $stmt->execute([$nome, $plantada, $ctc, $tabela, $vporcento, $prnt]); // 数据保存完成后跳转,替换成你要跳转的页面URL header("Location: 目标页面.php"); exit; // 跳转后必须终止脚本,防止后续代码执行 } ?>
关键注意事项
header()函数必须在任何HTML输出之前调用,所以PHP代码要放在页面最顶部,移除你当前代码里的<br>这类提前输出的内容,否则跳转会失效。- 如果需要把数据带到跳转后的页面,可以用URL参数,比如
header("Location: 目标页面.php?nome=" . urlencode($nome));,目标页面用$_GET['nome']即可接收。 - 处理用户输入时要注意安全,比如数据库操作使用预处理语句防止SQL注入,对输入内容做必要过滤。
内容的提问来源于stack exchange,提问作者gmartins
相关产品推荐
相关产品推荐

