2017-08-29 57 views
0

我想創建一個購物網站,所以我的問題是更新購物車。 這裏的EJS部分:多個值同名發送到req.body

<% 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數組?謝謝。

+0

你能告訴你如何讓你的'pid'形式嗎?上面的例子只顯示了一個正在發送的pid。 – Panther

+0

這是代碼的一小部分,pid來自數據庫。無論如何我會編輯澄清。 –

+0

'是否可以在沒有Ajax的情況下從輸入字段獲得一個pid-s數組?'那麼你如何提交表單?因爲它不在'form'裏面,你用什麼方式來提交? – Panther

回答

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> 

注重東西的事實,我已經推杆表單內提交按鈕,這樣你會得到原生提交行爲。

+0

我無法使用表單內的提交按鈕,它必須在外面,以便一次定位所有產品。 –

+0

還有,在google搜索和檢查stackoverflow後,我確實意識到我們需要在名稱旁邊使用[],但服務器端又如何? req.body。什麼 ? –