我最近在购物车按钮中添加和删除并在PHP中处理它们但我想在用户点击“添加到购物车”时以及当用户点击“从购物车中删除”时“添加”div div消失了。
如果我使用以下格式通过POST发送addToCart,我该如何实现:
<form class="cartOperations" action="<?= $_SERVER['PHP_SELF'] ?>" method="post">
<input type="submit" class="add-to-cart" name="removeFromCart" value="REMOVE">
<input type="submit" class="add-to-cart" name="addToCart" value="ADD TO BAG">
</form>
PHP代码:
<?php
if (isset($_POST) && isset($_POST['addToCart'])) {
$id = $_POST['productId'];
if (!isset($_SESSION['PRODUCTS']))
$_SESSION['PRODUCTS'] = array();
$_SESSION['PRODUCTS'][] = $id; // shorthand for array_push // array_push($_SESSION['PRODUCTS'], $id);
} elseif (isset($_POST) && isset($_POST['removeFromCart'])) {
$id = $_POST['productId'];
$key = array_search($id, $_SESSION['PRODUCTS']);
if ($key !== false) {
unset($_SESSION['PRODUCTS'][$key]);
}
}
?>
答案 0 :(得分:0)
你需要使用ajax。像这样:
<input type="submit" onclick="delProductFromCart(id);" class="add-to-cart" name="removeFromCart" value="REMOVE">
在php代码中设置id。
在javascript设置中
function delProductFromCart(priceid, url) {
$.ajax({
type: "GET",
dataType: 'html',
url: "?ajax&delproductid="+priceid
})
.done(function( html ) {
$(".block-cart-header").html( html );
$(".block-cart-header").effect("highlight", {}, 1000);
if (url!=undefined) { window.location = url; }
});
}
或
function addDealToCart(priceid) {
$.ajax({
type: "GET",
dataType: 'html',
url: "?ajax&dealid="+priceid
})
.done(function( html ) {
$(".block-cart-header").html( html );
$("html, body").animate({ scrollTop: 0 }, "fast", function(){$(".block-cart-header").effect("highlight", {}, 1000); });
});
并使用$ _SESSION进行数据存储没有好主意。在数据库中使用php和存储。
答案 1 :(得分:0)
此概念称为 Flash消息。
请read articles on Google。有很多关于这个主题的信息。许多框架甚至都有一个记录在案的解决方案。例如,请参阅how it's done in Symfony。