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

如何将按钮绑定的学生记录_id值传递到GET请求实现成绩更新

推荐实现方案(URL路径参数方式)

这是最符合RESTful规范的实现方式,步骤如下:

第一步:修改marks.ejs中的跳转按钮

直接把_id作为路径参数拼接在跳转链接中,不需要额外处理id属性:

<td><a href="/update/<%= item._id %>" class="btn btn-secondary">Update</a></td>

第二步:修改/update的GET路由,接收路径参数

Express路由支持通过:参数名的方式定义路径参数,直接从req.params中取值即可:

router.get("/update/:id", (req, res) =>
  res.render("update", {
    reqID: req.params.id
  })
);

第三步(可选):在update.ejs页使用拿到的_id

可以用隐藏域存储_id,提交修改表单的时候传递给后端接口,方便查询对应数据更新:

<input type="hidden" name="id" value="<%= reqID %>">
<!-- 其他成绩修改字段代码 -->

如果你要使用form表单方案也可以按以下调整:

第一步:修改marks.ejs中的表单

添加隐藏域存储_id,表单提交地址指向自定义的跳转路由即可:

<form method="post" action="/gotoUpdate">
     <input type="hidden" name="id" value="<%= item._id %>">
     <input type="submit" class="btn btn-secondary" value="Update">
</form>

第二步:修改对应的POST路由,接收id后跳转到带参数的更新页

router.post("/gotoUpdate", function (req, res) {
   res.redirect(`/update/${req.body.id}`)
});

后续的/update/:idGET路由和上面推荐方案一致即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 11:27:04