【发布时间】:2021-04-16 03:15:05
【问题描述】:
我是 AJAX 新手,正在尝试在我的电子商务网站上使用多个添加到购物车按钮。
目前只有第一个异步工作。其他三个将运行 additemtocart.php 代码(将商品添加到购物车),但页面会重新加载并出现“?”被附加到 url 的末尾,就像一个 GET 请求??
如果可能的话,我想坚持使用 vanilla js。谢谢你的帮助。
<h1>Multiple add to cart buttons vanilla js</h1>
<form id="A2Cform">
<input type="submit" value="add to cart" onClick = "A2Cdbq('28753')">
</form>
<form id="A2Cform">
<input type="submit" value="add to cart" onClick = "A2Cdbq('28754')">
</form>
<form id="A2Cform">
<input type="submit" value="add to cart" onClick = "A2Cdbq('28755')">
</form>
<form id="A2Cform">
<input type="submit" value="add to cart" onClick = "A2Cdbq('28756')">
</form>
<div id="addtocartMsg"> </div>
<script>
document.getElementById("A2Cform").addEventListener("submit", function(event){event.preventDefault()});
function A2Cdbq(prodid){//add item to the cart table
var params = "product_id="+prodid;
var xhr = new XMLHttpRequest();
xhr.open('POST', 'additemtocart.php', true);
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
xhr.onload = function(){
if(this.status == 200){
console.log(this.responseText);
document.getElementById('addtocartMsg').innerHTML = 'Item added to cart.';
}
}
xhr.send(params);
}
</script>
【问题讨论】: