You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP更新功能失效:修改表单值后仍保存旧值求助

解决PHP表单更新后仍保存旧值的问题

先看你给出的代码片段,我发现几个可能的问题,咱们一步步排查:

1. 先修正明显的拼写错误

你input的id写成了toal_fees(少了一个字母t),虽然这不一定直接导致保存失败,但可能会影响关联的JS函数show_record的执行,先把id改成正确的total_fees:

<input type="text" class="input_text" name="total_fees" id="total_fees" onblur="show_record(this.value,1)" value="<?php if($_POST['total_fees']) echo $_POST['total_fees']; else echo $row['total_fees'];?>" />

2. 检查后端更新逻辑(核心问题)

你的前端代码只是正确显示了提交的POST值或者数据库旧值,但如果后端没有把POST过来的total_fees写入数据库,那刷新页面后自然还是会读取旧的$row['total_fees']。

你需要确认处理表单提交的PHP代码里,是否有类似这样的更新语句(记得做参数绑定防止SQL注入):

// 示例:MySQLi方式更新数据库
$updateQuery = "UPDATE your_table_name SET total_fees = ? WHERE your_primary_key = ?";
$stmt = $conn->prepare($updateQuery);
// 根据你的字段类型调整参数类型,比如"s"是字符串,"i"是整数
$stmt->bind_param("si", $_POST['total_fees'], $yourRecordId); 
$stmt->execute();

如果没有这段逻辑,或者逻辑里有错误(比如主键匹配错误、字段名写错),数据库里的值根本不会更新,前端自然一直显示旧数据。

3. 确认POST数据是否正确接收

可以在处理提交的PHP代码开头加一段调试代码,看看是否真的收到了新值:

var_dump($_POST['total_fees']); // 输出收到的POST值,测试完记得删掉

如果输出的是你输入的新值,说明前端提交没问题,问题出在数据库更新;如果输出的是旧值或者空,那要检查表单是否用了method="post"、有没有其他JS阻止了表单提交。

4. 排除缓存问题

有时候浏览器会缓存页面,你可以按Ctrl+F5强制刷新页面,或者在PHP页面开头加禁止缓存的头:

header("Cache-Control: no-cache, no-store, must-revalidate");
header("Pragma: no-cache");
header("Expires: 0");

内容的提问来源于stack exchange,提问作者kiran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:14:53