0

我正在开发一个应用程序,在该应用程序中显示项目列表,然后针对每一行提供一个“点击购买”按钮。所以,基本上这就是最终应用程序的样子:

ITEM_NUM::::ITEM_NAME::::ITEM_PRICE::::BUY?

  1. :::: MY_BOOK :::: 2.99 :::: 加入购物车

  2. :::: MY_BOOK2 :::: 9.99 :::: 加入购物车

  3. :::: MY_BOOK3 :::: 10.99 :::: 加入购物车

我能够正确显示此列表。但是,我需要能够单击每一行的“添加到购物车”按钮,然后将该行的数据(即 item_num、名称、价格)发送到 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>

所以我的意图是使用隐藏的输入类型(names=iPrice、iName、iNum)将每一行的信息传递给 servlet 方法。我能够正确显示这些项目的事实表明我的 while 循环正在工作。但我的问题是,如果我单击第三行(即 MY_BOOK3)上的添加到购物车,它仍会将信息传递给仅第一行的 servlet。似乎一旦将第一行数据的值分配给这些隐藏变量,它就不会为每一行更新。

因此,我的问题是如何将 item_name、item_num、item_price 传递给与按下 ADD TO CART 的行相对应的 servlet?

4

1 回答 1

0

您可以访问下一页上的值。因此,如果他们单击按钮并将他们带到购物车页面,您就可以收集所有您想要的信息。

像这样

$iPrice = $_POST['iPrice']
$iName = $_POST['iName']
$iNum = $_POST['iNum']

然后,您可以在页面的任何位置使用这些变量。

谢谢,乔什

于 2013-07-28T13:18:05.087 回答