PHP表单提交问题:点击Save按钮传递employee_id更新数据库记录失败
问题解决:点击Save按钮传递employee_id更新数据库记录
现有代码的问题分析
<a>标签的错误使用:用<a>标签作为提交按钮只会触发页面跳转,不会提交表单中的POST数据,导致员工姓名、邮箱等字段无法传递到后端。- 参数拼写错误:URL中的参数写成了
ployee_id,少了字母e,正确应为employee_id,这会导致后端无法正确获取员工ID。 - 请求方式冲突:表单设置了
method="POST",但<a>标签的跳转是GET请求,两者逻辑冲突,无法正常提交表单数据。
正确解决方案(推荐使用隐藏字段+Submit按钮)
在表单中添加一个隐藏输入字段存储employee_id,用标准的<button>提交按钮触发表单提交,既能传递员工ID,也能提交所有表单字段的数据。
修改后的完整代码:
<form method="POST" action="handle_update.php"> <div class="mb-3"> <label for="exampleInputEmail1" class="form-label">First name</label> <input type="text" name="fname" value="<?php echo $first_name; ?>" class="form-control" > </div> <div class="mb-3"> <label for="exampleInputPassword1" class="form-label">Last name</label> <input type="text" name="last_name" value="<?php echo $last_name; ?>" class="form-control"> </div> <div class="mb-3"> <label for="exampleInputPassword1" class="form-label">Email</label> <input type="email" name="email" value="<?php echo $email; ?>" class="form-control"> </div> <div class="mb-3"> <label for="exampleInputPassword1" class="form-label">Designation</label> <input type="text" name="designation" value="<?php echo $designation; ?>" class="form-control"> </div> <div class="mb-3"> <label for="exampleInputPassword1" class="form-label">Address</label> <input type="text" name="address" value="<?php echo $address; ?>" class="form-control"> </div> <div class="mb-3"> <label for="exampleInputPassword1" class="form-label">Date of Joining</label> <input type="date" name="joining_date" value="<?php echo $joining_date; ?>" class="form-control"> </div> <!-- 添加隐藏字段传递employee_id --> <input type="hidden" name="employee_id" value="<?php echo $id2; ?>"> <!-- 使用submit按钮提交表单 --> <button type="submit" name="update" class="btn btn-primary">Save</button> </form>
后端获取参数的方式
在handle_update.php中,通过$_POST['employee_id']获取员工ID,同时可通过$_POST['fname']、$_POST['last_name']等获取其他表单字段数据,执行数据库更新操作。
额外注意事项
- 为避免SQL注入风险,不要直接拼接SQL语句,建议使用PHP的PDO或MySQLi预处理语句执行更新操作。
- 如果一定要用
<a>标签(不推荐,会丢失表单POST数据),需修正参数拼写:
这种方式仅能传递员工ID,表单中其他字段数据不会被提交,仅适用于不需要其他数据的场景。<a role="button" href="handle_update.php?employee_id=<?php echo $id2; ?>">Save</a>
内容的提问来源于stack exchange,提问作者Ayaz Ahmad
相关产品推荐
相关产品推荐

