多个值同名发送给req.body

时间:2017-08-29 04:58:54

标签: javascript node.js

我正在尝试创建一个购物网站,所以我的问题是更新购物车。 以下是EJS部分:

<% for (i=0;i<product.length;i++) { %>
<form action="/update-cart" method="POST" id="update-cart">
   <input type="text" name="quantity"  value="<%= products[product[i].pid] %>" title="Qty"/>
   <input type="hidden" name="pid" value="<%= product[i].pid %>">
</form>
<%}%>
<input type="submit" form="update-cart" value="Update Cart">

显然,所有字段都有1个提交按钮,因此在服务器端,当我req.body.pid时,它抓住第一个pid(即1)并返回只有1而不是其他领域。是否有可能在没有ajax的情况下从输入字段获取pid-s数组?谢谢。

1 个答案:

答案 0 :(得分:0)

不确定我是否理解正确,您只有一个pid输入。

如果您需要多个,可以在名称中使用数组表示法,例如pid[]

<form action="/update-cart" method="POST" id="update-cart">
   <input type="text" name="quantity"  value="<%= products[product[i].pid] %>" title="Qty"/>
   <input type="hidden" name="pid[]" value="<%= product[i].pid %>">
   <input type="hidden" name="pid[]" value="<%= product[i+1].pid %>">
   <input type="submit" form="update-cart" value="Update Cart">
</form>

注意我已经在表单中提交了提交按钮,因此您将获得本机提交行为。