我有一个html表单,显示用户产品搜索的结果(搜索结果来自我的mysql数据库)。我在表格的每一行中添加了一个“添加到购物车”按钮,html如下所示:
table id="products">
<tr>
<th>Product ID</th>
<th>Name</th>
<th>Brand</th>
<th>Rating</th>
<th>Price</th>
<th>Availability</th>
<tr th:each="product : ${results}">
<td th:text="${product.productId}" id="${product.productId}"></td>
<td th:text="${product.productName}"></td>
<td th:text="${product.brand}"></td>
<td th:text="${product.rating}"></td>
<td th:text="${product.price}"></td>
<td th:text="${product.availableInStock}"></td>
<td><button onclick="myfunction(this.dataset.productId)" class="btn-select" type="button" value="${product.productId}">Add to cart</button></td></tr>
</tr>
</table>
<script type="text/javascript">
function myfunction(productId) {
alert(productId);
var row = document.getElementById(productId).parentNode;
console.log(row);
}
</script>
我要“返回”用户单击的产品的产品ID(以便将其插入到用户购物车的数据库中)。 正如您在上面的代码中看到的那样,我尝试使用javascript。我试图开始弹出带有正确产品ID的警报,但它只是警报“未定义”。
您知道如何提醒正确的ID,然后将其返回以便插入数据库吗?
只需提一下,我使用ModelAndView来从数据库中获取搜索结果并将它们传递给html表,如下所示:
@RequestMapping("/results")
public ModelAndView results(UserSearch search){
ModelAndView mav = new ModelAndView("results");
Configuration cfg = new Configuration();
cfg.configure("hibernate.cfg.xml");
SessionFactory factory = cfg.buildSessionFactory();
Session session = factory.openSession();
ArrayList<ProductsEntity> li = (ArrayList<ProductsEntity>)session.createQuery("from ProductsEntity").list();
ArrayList<ProductsEntity> res = new ArrayList<ProductsEntity>();
for (ProductsEntity c: li) {
if (c.getProductName().toLowerCase().contains(search.getSearch().toLowerCase())){
res.add(c);
}
}
mav.addObject("results",res);
session.close();
factory.close();
return mav;
}
感谢您的帮助!