在jQuery中处理购物车功能

时间:2014-07-14 15:21:43

标签: php jquery ajax

我最近在购物车按钮中添加和删除并在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]);
    }
}
?>

2 个答案:

答案 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