使用PHP-检查购物车是否为空,如果显示,则显示消息

时间:2019-03-22 06:26:10

标签: php

我是php的新手,所以我很难完成此作业的每一步。最后一步,我碰壁了。我仅使用PHP(按照说明)构建了一个简单的购物车。 index.php页面包含所有项目以及一个重定向到checkout.php页面的checkout按钮。如果用户在将商品添加到购物车之前单击此“结帐”按钮,则我需要在结帐页面上显示“您的购物车为空”消息。我假设我需要对checkout.php文件进行检查。我已经尝试了十多次,但没有运气。感谢帮助。

我在checkout.php文件中包含了我尝试的代码

<?php

require_once('session_util.php'); 

if(isset($_SESSION[SHOPPING_CART]) && empty($_SESSION[SHOPPING_CART])) {
    echo 'Your shopping cart is empty.';
}
?>

<!doctype html>
<html lang="en">
<head>
    <title>Form 1</title>
    <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<main>
    <h2>Checkout</h2>
    <table id="cart">
        <?php
        // This is where session starts
        $itemArray = $_SESSION[SHOPPING_CART]->getItemArray();
        foreach ($itemArray as $item) {
            $name = $item->getName();
            $price = number_format($item->getPrice(), 2);

            echo "<tr>
                    <th>$name</th>
                    <th>$$price</th>
                  </tr>";
        }

        // you will get these from the shopping cart, not a specifc item
        $subTotal = number_format($_SESSION[SHOPPING_CART]->subTotal(), 2);
        $tax = number_format($_SESSION[SHOPPING_CART]->addTax(), 2);
        $total = number_format($_SESSION[SHOPPING_CART]->getTotal(), 2);

        // Display calculated subtotal, tax, and total.
        ?>
        <?php
        echo "
            <table id='total'>
            <tr><td>SubTotal &nbsp $$subTotal</td></tr>
            <tr><td>Tax &nbsp &nbsp &nbsp &nbsp &nbsp $$tax</td></tr>
            <tr><td>Total &nbsp &nbsp &nbsp &nbsp $$total</tr></td>
            </table>
            ";
        ?>
    </table>
    <form id="keep_shopping" method="post" action="index.php">
        <input id="submit" type="submit" class="keep_shopping" name="keep_shopping" value="Keep Shopping">
    </form>
    <form id="empty_cart" method="post" action="clear_cart.php">
        <input id="submit" type="submit" class="empty_cart" name="empty_cart" value="Empty Cart">
    </form>
</main>
</body>
</html>

注释中要求的编辑和信息:
enter code here session_start()位于单独的文件session_util.php中,该文件在所有其他分配文件的顶部都是必需的。

另外,当我在$_SESSION[SHOPPING_CART]上执行var_dump时;我得到以下信息:

  

object(ShoppingCart)#11(1){[“” itemArray“:” ShoppingCart“:private] =>   array(0){}}

1 个答案:

答案 0 :(得分:0)

首先必须有

session_start()在访问会话变量的php页面上。

然后是语法错误,而不是

$_SESSION[SHOPPING_CART]应该在整个代码中的任何地方$_SESSION["SHOPPING_CART"]