我使用以下表单将产品添加到 opencart 购物车。我遇到的问题是,产品添加后,它不会重定向到购物车,而只是显示一个包含产品成功添加通知的页面。
表格如下:
<form action="purchase/?route=checkout/cart/add" id="addToCartForm" method="post">
<input type="hidden" name="product_id" value="40">
<input type="hidden" name="quantity" id="quantity_field" value="">
<input type="hidden" name="price" value=>
<input type="submit" alt="Order Now" title="order now" value="Order Now test">
</form>
和 JavaScript 代码:
<script>
$(document).ready(function() {
$('form#addToCartForm input[type="submit"]').click(function(e) {
e.preventDefault(); // prevent the form from submitting
$.ajax({
type: 'POST',
dataType: 'json',
url: 'purchase/index.php?route=checkout/cart/add'
data: 'product_id=' + $('form#addToCartForm input[name="product_id"]').val() + '&quantity=' + $('form#addToCartForm input[name="quantity"]').val(),
success: function(json) {
window.location = 'purchase/index.php?route=checkout/cart';
console.log('add success');
}
});
});
});
</script>
单击表单后,页面重定向到 http://*****/purchase/?route=checkout/cart/add
并且页面消息显示“{”success”: "成功:您已将产品名称添加到购物车!","total":"4 件商品 -\u00a64.40"}"
因此,它确实添加了产品,但“成功”时的重定向似乎没有执行任何操作。
javascript 控制台不会通过 console.log('add success');
输出任何内容(或者它移动到购物车添加页面太快而无法看到)
感谢您的帮助
最佳答案
首先从表单中删除 action
属性,它不是必需的(并且可能会导致调试困惑)
然后使用以下 JavaScript
$('form#addToCartForm').submit(function(e) {
e.preventDefault();
$.ajax({
type: 'POST',
dataType: 'json',
url: 'purchase/index.php?route=checkout/cart/add'
data: 'product_id=' + $('form#addToCartForm input[name="product_id"]').val() + '&quantity=' + $('form#addToCartForm input[name="quantity"]').val(),
success: function (json) {
window.location = 'purchase/index.php?route=checkout/cart';
console.log('add success');
}
});
});
在你的问题中,你的ajax请求的一部分被注释掉了,这是真的吗,还是只是在发布到SO时被评论了?
关于javascript - 在opencart中添加产品后如何测试是否成功并重定向网页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20641359/