如何在购物车上保留元素?

时间:2018-12-11 08:29:37

标签: php jquery

我需要帮助来解决这个问题。

我有一个输入,用于指定用户要订购的产品数量。当按下“添加到购物车”按钮时,买方购物篮还必须显示该产品的订购数量。到目前为止,我只能显示图像,产品名称和价格(它们已保存在数据库中并由我接管),但我什至无法显示它们的数量(未保存在数据库中)想要命令。

我使用用户会话将产品存储在购物车中。 谢谢!

这是我的代码。

<div class="col-md-6">
    <div class="summary entry-summary">

       <h1 class="shorter"><strong><?php echo $item_rs['product_name']; ?></strong></h1>

       <p class="price">
       <span class="amount"><?php echo $item_rs['product_price'] . ' $'; ?></span>
    </p>

    <p class="taller"><?php echo $item_rs['product_description']; ?> </p>

    <form enctype="multipart/form-data" method="post" class="cart">
        <div class="quantity">
            <input type="button" class="minus" value="-">
            <input type="text" class="input-text qty text" title="Qty" value="1" name="quantity" min="1" step="1">
            <input type="button" class="plus" value="+">
        </div>
        <button type="button"  class="btn btn-primary btn-icon add-cart" data-id="<?php echo $item_rs['id_prod']; ?>">Add to cart</button>
    </form>
</div> </div>

这是运送车中的代码:

<tbody>
<?php
if(isset($arrayIds)) {
    foreach($arrayIds as $value) {
        $cart_sql = 'SELECT * FROM produs WHERE id_prod=' . $value;
        if($cart_query = mysqli_query($dbconnect, $cart_sql)) {
            $cart_rs = mysqli_fetch_assoc($cart_query);
        }
        ?>
        <tr>
            <td class="product-thumbnail">
                <img width="80" height="80" alt=""
                     class="img-responsive"
                     src="img/products/<?php echo $cart_rs['img_name']; ?>">
            </td>
            <td class="product-name">
                <?php echo $cart_rs['product_description']; ?><span
                    class="amount"></span><br>
                <?php echo $cart_rs['product_price'].' $'; ?>
            </td>
            <td class="product-quantity">

            </td>
            <td class="product-actions">
                <a title="Delete product" data-id="<?php echo $cart_rs['id_prod']; ?>" class="remove" href="#">
                    <i class="fa fa-times"></i>
                </a>
            </td>
        </tr>
        <?php
    }
}
?>
</tbody>

使用jQuery对用户会话进行撒播:

<script>
    $(document).ready(function(){
        $(document).on('click', '.add-cart',function(e){
            e.preventDefault();
            var data_id = $(this).attr('data-id');

            $.post('set_storage.php', {id: data_id});
            location.reload();
        });
    });
</script>

这是文件“ set_storage.php”:

<?php
session_start();

$arrayIds = $_SESSION["id"];
if ($arrayIds) {
    $_SESSION["id"] = $arrayIds . ", " . $_POST['id'];
} else {
    $_SESSION["id"] = $_POST['id'];
}

?>

1 个答案:

答案 0 :(得分:0)

如果您以这种方式存储ID,它可能会起作用:

<?php
session_start();

if(!isset($_SESSION['productsInCart'])) {
  $_SESSION['productsInCart'] = array();
}

$productIdToAdd = $_POST['id'];

if(isset($_SESSION['productsInCart'][$productIdToAdd]) === false) {
  $_SESSION['productsInCart'][$productIdToAdd] = 0;
}

$_SESSION['productsInCart'][$productIdToAdd]++;
?>

现在,数组$_SESSION['productsInCart']将购物车中每个产品的ID保留为键,将每个产品的项目数保留为值