php添加到给定数量的购物篮

时间:2016-10-21 09:36:34

标签: php session post cart

我试图在购物篮中添加一个简单的目录并订购,但我有一个问题:在购物车中添加所需数量的产品时一切正常,但如果我想添加另一个,然后没有出来。它只是将数量更新为1。

形式:

<form action="buy.php" method="post">
    <input type="hidden" name="productId" value="<?php echo $product['id']; ?>">
    <?php if ($product['quantity'] === 0): ?>
        <button type="submit" name="submit" disabled="true">Not available</button>
    <?php else: ?>
        <inputtype="number" name="productQuantity" value="1">
        <button type="submit" name="submit">Add to cart</button>
    <?php endif; ?>
</form>

buy.php

<?php

session_start();

if (isset($_POST['submit'])) {
    $productId = $_POST['productId'];

    $productQuantity = $_POST['productQuantity'];

    $_SESSION['cart'][$productId] = [
        'quantity' => $productQuantity
    ];
}

header('Location: http://localhost:8000/');

1 个答案:

答案 0 :(得分:0)

问题是您使用新条目覆盖整个会话变量。而不是将条目添加到数组。

尝试使用此代码:

<?php

session_start();

if (isset($_POST['submit'])) {
    $productId = $_POST['productId'];

    $productQuantity = $_POST['productQuantity'];

    $_SESSION['cart'][] = array('id' => $productId, 'quantity' => $productQuantity);
}

header('Location: http://localhost:8000/');

使用此代码,您将拥有一个包含所有条目的数组。我认为以后也更容易使用。