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

PHP学生反馈表单编辑页无法读取历史填报数据故障求助

问题原因

你当前的edit.php存在2个核心问题导致历史数据无法填充:

  1. 执行完查询后没有读取结果集,拿到对应fid的反馈数据
  2. 表单控件默认值设置规则错误:
    • <textarea>标签没有value属性,内容需要写在开闭标签中间
    • 下拉选择框<select>需要给匹配当前值的<option>添加selected属性才会默认选中

修改方案

第一步:修改edit.php的查询逻辑

在你原有查询代码后新增读取单条数据的逻辑:

<?php 
include "includes/database.php";

$fid = intval($_GET['fid']); // 转成整数避免非法传参
$query = mysqli_query($db,"SELECT * FROM `feedback` WHERE `fid`= $fid ");
// 新增:读取查询到的单条反馈数据
$row = mysqli_fetch_assoc($query);
if(!$row) {
    die('无效的反馈记录ID');
}
?>

第二步:修改所有下拉选择框的代码

给每个option加选中判断,以OOP评分下拉为例,其他下拉(webr、databaser等)按相同逻辑修改:

<select class="form-control" id="exampleFormControlSelect1" name="oopr">
    <option value="1" <?php if($row['oopR'] == 1) echo 'selected'; ?>>1</option>
    <option value="2" <?php if($row['oopR'] == 2) echo 'selected'; ?>>2</option>
    <option value="3" <?php if($row['oopR'] == 3) echo 'selected'; ?>>3</option>
    <option value="4" <?php if($row['oopR'] == 4) echo 'selected'; ?>>4</option>
    <option value="5" <?php if($row['oopR'] == 5) echo 'selected'; ?>>5</option>
</select>

第三步:修改所有textarea的代码

删除value属性,把数据写到标签中间,以OOP评论textarea为例,其他textarea(webc、databasec等)按相同逻辑修改:

<textarea class="form-control" id="exampleFormControlTextarea1" rows="3" name="oopc"><?php echo htmlspecialchars($row['oopC']); ?></textarea>

其他优化建议

  • editprocess.php重复引入了两次includes/database.php,可删除其中一行重复代码
  • 所有输出到HTML页面的内容用htmlspecialchars转义,避免XSS漏洞
  • 当前直接拼接SQL的写法存在SQL注入风险,后续优化建议更换为mysqli预处理语句

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 02:45:01