【问题标题】:How to add items to shopping basket JSP如何将商品添加到购物篮 JSP
【发布时间】:2015-04-29 04:34:19
【问题描述】:

似乎无法在 Google/Youtube 上直接找到有关如何执行此操作的任何好的指南。 基本上我有一个产品列表(代码):

<sql:query var="result">
select * from inventory;
</sql:query>

<table border="1" width="100%">
<tr>
<th>Code</th>
<th>Author</th>
<th>Description</th>
<th>Other field(Probs price)</th>
<th>Item Stock</th>
<th>Order Stock</th>
<th>Buy option </th>
</tr>

<c:forEach var = "row" items = "${result.rows}">
<tr>
<td><c:out value = "${row.item_code}"/></td>
<td><c:out value = "${row.item_author}"/></td>
<td><c:out value = "${row.item_description}"/></td>
<td><c:out value = "${row.item_price}"/></td>
<td><c:out value = "${row.item__stock_count}"/></td>
<td><c:out value = "${row.item_order_count}"/></td>
<td><a href="shoppingbasket.jsp">Order Now!</a></td>
</tr>
</c:forEach>
</table>
</div>  

布局如下:

代码作者描述价格项目股票购买股票购买选项

它连接到 mySQL 数据库。所以很明显,在所有这些标题下都是信息。在“购买选项”下,每一行都有购买。

我想要做的是当我点击一排的购买时。它将获取该特定行的商品代码并将商品发布到页面 shoppingbasket.jsp 上。

有什么想法可以做到这一点吗?

【问题讨论】:

    标签: javascript html mysql jsp


    【解决方案1】:

    不是 .jsp 特定的,但也许这可以启发你。 通常可以像这样使用 onclick 事件进行模板化:

    <td onclick="addToCart(row.item_code)"></td>
    

    我不熟悉你的确切语法,但想法是调用一个函数并传递当前行的 id。

    然后你就会有一个像这样的 javascript 函数:

    function addToCart(id) {
       //POST request using 'id'
    }
    

    希望这会有所帮助!

    【讨论】:

    • 感谢您的回复!在这里有一个稍微编辑过的问题版本:stackoverflow.com/questions/28751475/…
    • 虽然 javascript 是为您的后端建立点击的一种方式。另一个只是使用普通的 HTML 链接。 &lt;a href="shoppingbasket.jsp?action=addToCart&amp;item_code=item_to_add"&gt;add to cart&lt;/a&gt;
    【解决方案2】:

    使用按钮发出 POST 请求。你问为什么?

    1. 无需 JavaScript 即可工作
    2. 您希望将 POST 用于更改内容的请求

    所以把你的整个产品列表放在&lt;form&gt; 中,然后让你的按钮(每个产品一个)像这样:

    &lt;button name="btnAddToCart" value="&lt;c:out value='${row.item_code}'/&gt;"&gt;Add to Cart&lt;/button&gt;

    您可能也应该使用服务器端模型-视图-控制器框架(如 Spring MVC)。您将有一个这样的控制器 RequestMapping 来接受您的按钮 POST:

    @RequestMapping(value="/your-product-list-page", params={"btnAddToCart"})
    

    您的购物车需要一个会话范围的对象。

    当我们这样做的时候,你应该使用&lt;c:out value="${...}"/&gt; 来逃避一些东西,以尽量减少 XSS 的风险。而且您可能想要一个响应式 CSS 框架,以便您的网站可以在移动设备上运行。

    【讨论】:

      猜你喜欢
      • 2021-11-25
      • 2012-06-30
      • 1970-01-01
      • 1970-01-01
      • 2016-12-19
      • 2015-03-31
      • 2018-04-10
      相关资源
      最近更新 更多