【发布时间】:2018-04-03 20:01:26
【问题描述】:
我正在尝试使用 php、sql 和我的数据库在 phpmyadmin 上遵循一个简单的添加到购物车教程,但是当用户单击“添加到购物车”时,购物车表中没有显示任何内容。
欢迎任何非 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>
【问题讨论】:
-
当你点击加入购物车时,什么样的数据会发送到服务器?尝试发布请求正文的样子,以便我们提供帮助
-
你在检查errors吗?
-
与其检查
$_POST['add_to_cart'],不如检查$_REQUEST['action'] == "add".... -
我正在检查错误,我刚刚尝试了@webdevsoup,但还没有运气。谢谢
标签: php mysql cart shopping-cart