购物车怎么通过jsp向servlet传递商品id和购买数量?

kjwangxun 2016-01-15 08:58:54
购物车怎么通过jsp向servlet传递商品id和购买数量?
各位大神帮忙看看
servlet里想通过request.getParameter()来获取
form试过,获得点击按钮的商品id,全是相同的1
jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<!DOCTYPE HTML>
<html>
<head>
<title>商品信息列表</title>
<script type="text/javascript" src="js/jquery-1.11.1.js"></script>
<script type="text/javascript">
function increase(btn){
var $text=$(btn).prev();
var num=$text.val();
$text.val(++num);
}
function decrease(btn){
var $text=$(btn).next();
var num=$text.val();
if(num<=1){
return;
}
$text.val(--num);
}
</script>
</head>
<body>
<h2>包子店</h2>
<h4><a href="shoppingcarServlet">查看购物车</a></h4>
<hr>
<table width="80%" border="1">
<tr>
<th>商品名称</th>
<th>商品图片</th>
<th>商品价格</th>
<th>购买数量</th>
<th>操作</th>
</tr>
<c:forEach items="${goodslist}" var="goodslist">
<tr align="center">
<td>${goodslist.name}</td>
<td><img src="img/${goodslist.img}" width="200" height="70"></td>
<td>${goodslist.price}</td>
<td><input type="button" value="-" onclick="decrease(this);">
<input size="1" maxlength="4" type="text" id="num" name="num" value="1"/>
<input type="button" value="+" onclick="increase(this);"/></td>
<td><a href="shoppingcarServlet?id=${goodslist.id}">加入购物车</a></td>
</tr>
</c:forEach>
</table>
</body>
</html>
这是商品页面,商品数量我想自己控制然后发送到servlet


<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE HTML>
<html>
<head>
<title>商品信息列表</title>
<script type="text/javascript" src="js/jquery-1.11.1.js"></script>
<script type="text/javascript">
function increase(btn){
var $text=$(btn).prev();
var num=$text.val();
$text.val(++num);
}
function decrease(btn){
var $text=$(btn).next();
var num=$text.val();
if(num<=1){
return;
}
$text.val(--num);
}
</script>
</head>
<body>
<h2>包子店</h2>
<h4><a href="shoppingcarServlet">查看购物车</a></h4>
<hr>
<form action="shoppingcarServlet" method="get">
<table width="80%" border="1">
<tr>
<th>商品名称</th>
<th>商品图片</th>
<th>商品价格</th>
<th>购买数量</th>
<th>操作</th>
</tr>
<c:forEach items="${goodslist}" var="goodslist">
<tr align="center">
<input type="hidden" name="id" value="${goodslist.id}">
<td>${goodslist.name}</td>
<td><img src="img/${goodslist.img}" width="200" height="70"></td>
<td>${goodslist.price}</td>
<td><input type="button" value="-" onclick="decrease(this);">
<input size="1" maxlength="4" type="text" id="num" name="num" value="1"/>
<input type="button" value="+" onclick="increase(this);"/></td>
<td><input type="submit" value="加入购物车"></td>
</tr>
</c:forEach>
</table>
</form>
</body>
</html>
这是改成的form表单提交,servlet接到的id全是第一件商品的id
...全文
548 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
coffee_vip 2016-01-18
  • 打赏
  • 举报
回复

var num=$("#num"+goodsid).val();//少了一个#不好意思
coffee_vip 2016-01-18
  • 打赏
  • 举报
回复

你可以这样来修改
<td><input type="button" value="-" onclick="decrease(this);">
    <input size="1" maxlength="4" type="text" id="num${goodslist.id}" name="num${goodslist.id}" value="1"/>
    <input type="button" value="+" onclick="increase(this);"/></td>
<td><a href="javascript:;" onclick="toFun('${goodslist.id}');">加入购物车</a></td>
在数量文本框的id那块应该是一个变量主要是为了得到当前商品id对应的数量,你点击加入购物车的时候写一个javascript方法,如下

<script>
function toFun(goodsid){
  var num=$("num"+goodsid).val();//这步来获取当前商品对应的数量,然后在用js方法跳转到目标servlet
  window.location.href="shoppingcarServlet?id="+goodsid+"&num="+num;
  //你也可以用表单提交 都可以
}
</script>
_追逐梦想_ 2016-01-18
  • 打赏
  • 举报
回复
servlet中使用 一个数组去接收这些id

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧