刚学java  用jsp JavaBean servlet做的  购物车的功能基本都能实现了  做完了检测的时候发现一问题  当我往购物车里添加多种商品完之后  修改数量只能修改最前面的一条了  如图:页面:
 
<c:forEach var = "item" items = "${cart.items}" varStatus = "s">
                <form action = "cart" method = "post" name = "form1">
                   <tr>
                     <td>"${item.goods.goods_name }"</td>
                     <td align="right"><fmt:formatNumber value="${ item.goods.goods_price }" pattern="¥#,##0.00" /></td>
                     <td align = "left">
                      <input type="text" name="amount"  value ="${item.amount }"  size="18" maxlength="18" style="text-align:left"/>
                      <c:set var = "amount" value = "${amount+item.amount}"></c:set>
                     </td>
                     <td>
                      <c:set var = "total" value ="${item.goods.goods_price*item.amount}"></c:set>
                       <c:set var = "sum" value = "${sum+total}"></c:set>
                       <fmt:formatNumber value = "${total}" pattern = "¥#,##0.00"></fmt:formatNumber>
                     </td>
                        <td align="center">
                        <input type="hidden" name="goods_id" value="${ item.goods.goods_id }" />
     <input type="hidden" name="method" value="updateCart" />
     <input class="button" type="submit" value="更新" />
如果要做得完善一点,添加到购物车的每一条记录都可以修改数量  该怎么做
按理说  goodsid  是每次修改时都传过去了的  但我调试时就每次都传的第一条的id  所以其他的商品数量根本修改不了
请问你们是怎么实现的呢? 在此处你们是怎么控制的呢   能给我思路最后不过了  没法 分不多啊  讨论讨论吧  能说一点就说一点吧   

解决方案 »

  1.   

    数量可以用js先算出来id可以用复选框数组传过去吧
      

  2.   

    原因可能是你每次向购物车里放数据时都是新建一个session。建议你先判断下session是否为null再创建一个session。
      

  3.   

    可考虑用js来控制,一个增加,一个减少,商品数量用text也可以手工修改, 每条数据确定一个id的名字    <input type="hidden" name="goods_id" value="${ item.goods.goods_id }" /> 你这个最通过goods_id取出来当然是最新的一个id了  前面的都被你覆盖了。所以每次id的名字也递加,只要确定id了就好做了
      

  4.   

    我做的是用cookie来存的,给数量列一个下拉值,选择时带过去一个 物品id+数量。