我正在應用程序中顯示項目列表,然後針對每一行提供「單擊購買」按鈕。所以,基本上這裏是最終應用應該是什麼樣子:我可以使用resultset將<input type =「hidden」>標記傳遞給servlet嗎?
ITEM_NUM :::: ITEM_NAME :::: ITEM_PRICE ::::買嗎?
:::: MY_BOOK :::: 2.99 ::::加入購物車
:::: MY_BOOK2 :::: 9.99 ::::加入購物車
- :::: MY_BOOK3 :::: 10.99 ::::添加到購物車
我能夠正確顯示此列表。但是,我需要能夠點擊每行的ADD TO CART按鈕,然後將該行的數據(即item_num,name,price)發送到Servlet函數,該函數將該商品添加到購物車。下面是我使用的代碼:
try {
Statement s1 = c1.createStatement();
String q1 = "select itemNum, itemName, itemPrice from part_list";
ResultSet rset = s1.executeQuery(q1);
if (!rset.isBeforeFirst()) {
out.println("<h3> No Items in inventory yet. Everything Sold Out!!!</h3>");
out.println("</br>");
} else {
%>
<table border="1">
<tr>
<th>Item Number </th>
<th>Item Name </th>
<th> Item Price </th>
<th> BUY? </th>
</tr>
<form name="inventoryForm" action="cartserv" method="POST">
<input type="hidden" name="choice" value="addCart">
<%
out.println("<br/><br/>");
while (rset.next()) {
out.println("<tr>");
out.println("<td>" + rset.getInt(1) + "</td><td>" + rset.getString(2) + "</td><td>" + rset.getDouble(4) + "</td><td>");
out.println("<td><input type=\"submit\" value=\"CLICK TO BUY\"/></td>");
%>
<input type="hidden" name="iPrice" value="<%=rset.getDouble(4)%>"/>
<input type="hidden" name="iName" value="<%=rset.getString(2)%>"/>
<input type="hidden" name="iNum" value="<%= rset.getInt(1)%>"
<%
out.println("</tr>");
}
%>
</form>
</table>
所以在這裏我的意圖是使用隱藏的輸入類型(名稱= iPrice,INAME,INUM)通過對每行到servlet方法的信息。我能夠正確顯示這些項目的事實表明我的while循環正在工作。但我的問題是,如果我點擊第三行(即MY_BOOK3)上的ADD TO CART,它仍然會將信息傳遞給第一行的servlet。似乎一旦來自第一行數據的值被分配給這些隱藏變量,它就不會針對每一行進行更新。
因此,我的問題是,如何將item_name,item_num,item_price傳遞給與ADD TO CART所按行相對應的servlet?