在我的PHP页面中提交按钮而不是将项目添加到购物车

时间:2018-04-03 20:01:27

标签: php mysql cart shopping-cart

我试图在phpmyadmin上使用php,sql和我的数据库关注一个简​​单的添加到购物车教程,但是当用户点击"添加到购物车"时,购物中没有显示任何内容购物车表。

欢迎任何非php解决方案。 以下是教程:http://www.webslesson.info/2016/08/simple-php-mysql-shopping-cart.html

谢谢!

<?php
session_start();
require_once ('database_conn.php');
if (isset($_POST["add_to_cart"])) {
    if (isset($_SESSION["shopping_cart"])) {
        $item_array_id = array_column($_SESSION["shopping_cart"], "productID");
        if (!in_array($_GET["id"], $item_array_id)) {
            $count = count($_SESSION["shopping_cart"]);
            $item_array = array(
                'productID' => $_GET["productID"],
                'productName' => $_POST["productName"],
                'productPrice' => $_POST["productPrice"],
                'productAisle' => $_POST["productAisle"]
            );
            $_SESSION["shopping_cart"][$count] = $item_array;
        }
    } else {
        $item_array = array(
            'productID' => $_GET["productID"],
            'productName' => $_POST["productName"],
            'productPrice' => $_POST["productPrice"],
            'productAisle' => $_POST["productAisle"]
        );
        $_SESSION["shopping_cart"][0] = $item_array;
    }
}
if (isset($_GET["action"])) {
    if ($_GET["action"] == "delete") {
        foreach ($_SESSION["shopping_cart"] as $keys => $values) {
            if ($values["item_id"] == $_GET["id"]) {
                unset($_SESSION["shopping_cart"][$keys]);
                echo '<script>alert("Item Removed")</script>';
                echo '<script>window.location="add.php"</script>';
            }
        }
    }
}
?>
<!DOCTYPE html>
<html>
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
    </head>
    <body>
        <br />
        <div class="container" style="width:700px;">
            <?php
            $name = isset($_REQUEST['name']) ? $_REQUEST['name'] : null;
            $sqlProducts = "SELECT productID, productName, productPrice, productImage, productAisle

                    FROM s_products WHERE productName LIKE '%$name%'";
            $rProducts = mysqli_query($conn, $sqlProducts) or die(mysqli_error($conn));

            while ($row = mysqli_fetch_assoc($rProducts)) {
                $productID = $row['productID'];
                $productName = $row['productName'];
                $productImage = $row['productImage'];
                $productAisle = $row['productAisle'];
                {
                    ?>
                    <div class="col-md-4">
                        <form method="post" action="add.php?action=add&id=<?php echo $row["id"]; ?>">
                            <div style="border:1px solid #333; background-color:#f1f1f1; border-radius:5px; padding:16px;" align="center">
                                <img src="<?php echo $row["productImage"]; ?>" class="img-responsive" /><br />
                                <h4 class="text-info"><?php echo $row["productName"]; ?></h4>
                                <h4 class="text-danger">$ <?php echo $row["productPrice"]; ?></h4>
                                <input type="text" name="quantity" class="form-control" value="1" />
                                <input type="hidden" name="hidden_name" value="<?php echo $row["productName"]; ?>" />
                                <input type="hidden" name="hidden_price" value="<?php echo $row["productPrice"]; ?>" />
                                <input type="submit" name="add_to_cart" style="margin-top:5px;" class="btn btn-success" value="Add to Cart" />
                            </div>
                        </form>
                    </div>
                    <?php
                }
            }
            ?>
            <div style="clear:both"></div>
            <br />
            <h3>Order Details</h3>
            <div class="table-responsive">
                <table class="table table-bordered">
                    <tr>
                        <th width="40%">Item Name</th>
                        <th width="10%">Quantity</th>
                        <th width="20%">Price</th>
                        <th width="15%">Total</th>
                        <th width="5%">Action</th>
                    </tr>
                    <?php
                    if (!empty($_SESSION["shopping_cart"])) {
                        $total = 0;
                        foreach ($_SESSION["shopping_cart"] as $keys => $values) {
                            ?>
                            <tr>
                                <td><?php echo "$productName"; ?></td>
                                <td><?php echo "$productPrice"; ?></td>
                                <td>$ <?php echo "$productAisle"; ?></td>

                                <td><a href="add.php?action=delete&id=<?php echo "$productID";
                        }
                        ?>"><span class="text-danger">Remove</span></a></td>
                        </tr>

                        <tr>
                            <td colspan="3" align="right">Total</td>
                            <td align="right">$ <?php echo number_format($total, 2); ?></td>
                            <td></td>
                        </tr>
                        <?php
                    }
                    ?>
                </table>
            </div>
        </div>
        <br />
    </body>
</html>

1 个答案:

答案 0 :(得分:0)

为您提供完整的返工代码库。

<?php
session_start();
require_once('database_conn.php');
if (isset($_POST["add_to_cart"])) {
    if (isset($_SESSION["shopping_cart"]) && !empty($_SESSION['shopping_cart'])) {
        $item_array_id = array_column($_SESSION["shopping_cart"], "productID");
        if (!in_array($_GET["id"], $item_array_id)) {
            $count = count($_SESSION["shopping_cart"]);
            $item_array = array(
                'productID' => $_GET["productID"],
                'productName' => $_POST["productName"],
                'productPrice' => $_POST["productPrice"],
                'productAisle' => $_POST["productAisle"]
            );
            $_SESSION["shopping_cart"][$count] = $item_array;
        }
    } else {
        $item_array = array(
            'productID' => $_GET["productID"],
            'productName' => $_POST["productName"],
            'productPrice' => $_POST["productPrice"],
            'productAisle' => $_POST["productAisle"]
        );
        $_SESSION["shopping_cart"][0] = $item_array;
    }
}
if (!empty($_GET["action"])) {
    switch ($_GET['action']) {
        case 'delete':
            foreach ($_SESSION["shopping_cart"] as $keys => $values) {
                if ($values["item_id"] == $_GET["id"]) {
                    unset($_SESSION["shopping_cart"][$keys]);
                    echo '<script>alert("Item Removed")</script>';
                    echo '<script>window.location="add.php"</script>';
                }
            }
            break;
        case 'add':
            if (isset($_SESSION["shopping_cart"]) && !empty($_SESSION['shopping_cart'])) {
                $item_array_id = array_column($_SESSION["shopping_cart"], "productID");
                if (!in_array($_GET["id"], $item_array_id)) {
                    $count = count($_SESSION["shopping_cart"]);
                    $item_array = array(
                        'productID' => $_GET["productID"],
                        'productName' => $_POST["productName"],
                        'productPrice' => $_POST["productPrice"],
                        'productAisle' => $_POST["productAisle"]
                    );
                    $_SESSION["shopping_cart"][$count] = $item_array;
                }
            } else {
                $item_array = array(
                    'productID' => $_GET["productID"],
                    'productName' => $_POST["productName"],
                    'productPrice' => $_POST["productPrice"],
                    'productAisle' => $_POST["productAisle"]
                );
                $_SESSION["shopping_cart"][0] = $item_array;
            }
            break;
    }
}
?>
<!DOCTYPE html>
<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"/>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
</head>
<body>
<br/>
<div class="container" style="width:700px;">
    <?php
    $name = isset($_REQUEST['name']) ? $_REQUEST['name'] : null;
    $sqlProducts = "SELECT productID, productName, productPrice, productImage, productAisle

                    FROM s_products WHERE productName LIKE '%$name%'";
    $rProducts = mysqli_query($conn, $sqlProducts) or die(mysqli_error($conn));

    while ($row = mysqli_fetch_assoc($rProducts)) {
        ?>
        <div class="col-md-4">
            <form method="post" action="add.php?action=add&productID=<?php echo $row["id"]; ?>">
                <div style="border:1px solid #333; background-color:#f1f1f1; border-radius:5px; padding:16px;"
                     align="center">
                    <img src="<?php echo $row["productImage"]; ?>" class="img-responsive"/><br/>
                    <h4 class="text-info"><?php echo $row["productName"]; ?></h4>
                    <h4 class="text-danger">$ <?php echo $row["productPrice"]; ?></h4>
                    <input type="text" name="quantity" class="form-control" value="1"/>
                    <input type="hidden" name="productName" id="productName" value="<?= $row["productName"] ?>"/>
                    <input type="hidden" name="productPrice" id="productPrice" value="<?= $row["productPrice"] ?>"/>
                    <input type="hidden" name="productAisle" id="productAisle" value="<?= $row['productAisle'] ?>"/>
                    <input type="hidden" name="hidden_name" value="<?php echo $row["productName"]; ?>"/>
                    <input type="hidden" name="hidden_price" value="<?php echo $row["productPrice"]; ?>"/>
                    <input type="submit" name="add_to_cart" style="margin-top:5px;" class="btn btn-success"
                           value="Add to Cart"/>
                </div>
            </form>
        </div>
        <?php
    }
    ?>
    <div style="clear:both"></div>
    <br/>
    <h3>Order Details</h3>
    <div class="table-responsive">
        <table class="table table-bordered">
            <tr>
                <th width="40%">Item Name</th>
                <th width="10%">Quantity</th>
                <th width="20%">Price</th>
                <th width="15%">Total</th>
                <th width="5%">Action</th>
            </tr>
            <?php
            if (!empty($_SESSION["shopping_cart"])) {
                $total = 0;
                foreach ($_SESSION["shopping_cart"] as $keys => $values) {
                    ?>
                    <tr>
                        <td><?= $values['productName'] ?></td>
                        <td><?= $values['productPrice'] ?></td>
                        <td>$ <?= $values['productAisle'] ?></td>
                        <td><a href="add.php?action=delete&id=<?= $values['productID'] ?>"><span class="text-danger">Remove</span></a>
                        </td>
                    </tr>
                    <?php
                }
                ?>

                <tr>
                    <td colspan="3" align="right">Total</td>
                    <td align="right">$ <?php echo number_format($total, 2); ?></td>
                    <td></td>
                </tr>
                <?php
            }
            ?>
        </table>
    </div>
</div>
<br/>
</body>
</html>