2013-07-28 74 views
0

我正在應用程序中顯示項目列表,然後針對每一行提供「單擊購買」按鈕。所以,基本上這裏是最終應用應該是什麼樣子:我可以使用resultset將<input type =「hidden」>標記傳遞給servlet嗎?

ITEM_NUM :::: ITEM_NAME :::: ITEM_PRICE ::::買嗎?

  1. :::: MY_BOOK :::: 2.99 ::::加入購物車

  2. :::: MY_BOOK2 :::: 9.99 ::::加入購物車

  3. :::: 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?

回答

0

您可以訪問下一頁上的值。因此,如果他們點擊該按鈕並將其帶到購物車頁面,則可以收集所有您想要的信息。

像這樣

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

然後你就可以在頁面上的任何位置使用這些變量。

謝謝, Josh

相關問題