【问题标题】:how to retain the previous echo value and echo another one below it in php?如何在php中保留先前的回显值并在其下方回显另一个?
【发布时间】:2015-01-02 05:27:27
【问题描述】:

我正在创建一个购物车,但我的回声没有按预期显示。我不确定我哪里出错了。

这是我的产品详情页面,

<form  action="shoppingCart.php?addToCart=<?php echo $key ?>" method="post">
    <select name="quantity">
           <option value="1">1</option>
           <option value="2">2</option>
           <option value="3">3</option>
    </select>
    <input type="hidden" name="productName" value="<?php echo $key ?>">
    <input type="submit" name="addToCart" value="Add to cart" class="btn btn-primary">
</form>

这是我的购物车 php 代码:

<?php
        session_start();

            
            


            if (isset($_SESSION['shoppingCart'])) {
                $_SESSION['shoppingCart'] = [];
            }
            

            if (isset($_POST['addToCart'])) {
                echo "Product: " . $_POST['productName'] . "<br/>";
                $count = count($_SESSION['shoppingCart']);
                echo "count: $count<br/>";
                $_SESSION['shoppingCart'][$count]['productName'] = $_POST['productName'];
                $_SESSION['shoppingCart'][$count]['quantity'] = $_POST['quantity'];
                
            
                echo "<h3>Your Cart</h3>";
                if (empty($_SESSION['shoppingCart'])) {
                    echo "your cart is empty<br/>";
                } else {
                    
                    foreach ($_SESSION['shoppingCart'] as $key => $names) {
                        
                        echo "cart($key) = product: " . $names['productName'] . "-Quantity: " . $names['quantity'] . "<br/>";
                    }
                    
                }
            }
            ?>

我只能在添加到购物车页面中回显这个。

产品:考拉

计数:0

您的购物车

cart(0) = 产品:AkwardKoala-数量:1

我怎样才能做到这一点,

您的购物车

cart(0) = 产品:考拉-数量:1

cart(1) = 产品:cat-数量:3

cart(2) = 产品:鱼-数量:1

【问题讨论】:

  • 为什么action URL 和隐藏输入中都需要密钥?

标签: php session


【解决方案1】:

这是错误的:

        if (isset($_SESSION['shoppingCart'])) {
            $_SESSION['shoppingCart'] = [];
        }

您正在清空已设置的会话变量。我认为您想在 设置时对其进行初始化。所以应该是:

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

然后您可以将新商品添加到购物车中,所有旧商品都会保留。

【讨论】:

  • 感谢您注意到这一点! ^_^
猜你喜欢
  • 2018-01-19
  • 2014-05-15
  • 1970-01-01
  • 2013-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-01
相关资源
最近更新 更多