0

私は、アイテムのリストを表示し、各行に対して「クリックして購入」ボタンを提供するアプリケーションに取り組んでいます。したがって、基本的には、最終的なアプリケーションは次のようになります。

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

  1. :::: MY_BOOK :::: 2.99 :::: カートに入れる

  2. :::: MY_BOOK2 :::: 9.99 :::: カートに入れる

  3. :::: MY_BOOK3 :::: 10.99 :::: カートに入れる

このリストを正しく表示できます。ただし、各行の [ADD TO CART] ボタンをクリックし、その行のデータ (item_num、name、price) をサーブレット関数に送信して、アイテムをカートに追加できるようにする必要があります。私が使用しているコードは次のとおりです。

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) を使用して、各行の情報をサーブレット メソッドに渡すことでした。これらのアイテムを正しく表示できるという事実は、while ループが機能していることを示しています。しかし、私の問題は、3 番目の行 (MY_BOOK3) で [ADD TO CART] をクリックすると、最初の行の情報のみがサーブレットに渡されることです。最初の行データの値がこれらの隠し変数に割り当てられると、行ごとに更新されないようです。

したがって、私の質問は、「ADD TO CART」が押された行に対応するサーブレットに、item_name、item_num、item_price を渡す方法です。

4

1 に答える 1