【发布时间】:2017-08-25 06:27:44
【问题描述】:
我正在制作一个购物车,当用户将商品添加到购物车时,它会保存到数据库中。我已将所有需要的信息放在标签中。一些信息作为纯文本和隐藏输入重复。问题是,当我将商品添加到购物车时,它确实显示“已添加商品”,但实际上并未将任何信息添加到数据库中。我已经测试过它是由图像还是价格等引起的。它只有在我只留下 order_quantity 时才按预期运行。
这是商店页面:
<!DOCTYPE html>
<html>
<head>
<title>Store</title>
<link href="../styles/main.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<header>
<center><img src="../images/logo.png"></a></center>
<nav>
<ul>
<center><h3><li>Store</li>
<li><a href="cart.php">Cart</a></li>
<li><a href="userorders.php">My orders</a></li>
<li><a href="logout.php">Logout</a></li></h3></center>
</ul>
</nav>
</header>
<div class="left">
<ul>
<h4><li>Completes</li>
<li><a href="decksstore.php">Decks</li>
<li><a href="wheelsstore.php">Wheels</a></li>
<li><a href="bearingsstore.php">Bearings</a></li>
<li><a href="trucksstore.php">Trucks</a></li>
<li><a href="hardwarestore.php">Hardware</a></li></h4>
</ul>
</div>
<div class="main">
<br>
<?php
require_once('../../connect.php');
$select = "SELECT * FROM tblcompletes";
$response = mysqli_query($dbc, $select);
while ($row = mysqli_fetch_array($response))
{
echo '<div class="buyproducts">
<form method="post" action="addtocart.php">
<div style="border:1px solid white; background-color:white; border-radius:20px; padding:20px;" align="center">
<img src="data:image/jpeg;base64,'.base64_encode( $row['product_image'] ).'" class="img-responsive">
<h4 class="text-info">'.$row['product_name'].'</h4>
<h4 class="text-danger">$'.$row['product_price'].'</h4>
<h4>'.$row['product_quantity'].' in stock</h4>
Quantity: <input type="text" name="order_quantity" class="form-control" value="1">
<input type="hidden" name="hidden_id" value="'.$row["product_ID"].'">
<input type="hidden" name="hidden_image" value="data:image/jpeg;base64,'.base64_encode( $row['product_image'] ).'" class="img-responsive">
<input type="hidden" name="hidden_name" value="'.$row["product_name"].'">
<input type="hidden" name="hidden_price" value="'.$row["product_price"].'">
<input type="submit" style="margin-top:5px;" class="btn-success" value="Add to cart">
</div>
</form>
</div>';
}
?>
</div>
</body>
</html>
这里是动作文件:
<?php
require_once('../../connect.php');
$hidden_id = $_POST['product_ID'];
$hidden_image = $_POST['product_image'];
$hidden_name = $_POST['product_name'];
$hidden_price = $_POST['product_price'];
$order_quantity = $_POST['order_quantity'];
$user_email = $_COOKIE['user_email'];
if ($order_quantity == NULL)
{
echo '<script type="text/javascript"> alert("Please enter a valid value"); window.location="completesstore.php"; </script>';
}
else
{
$addtocart = "INSERT INTO tblorders (product_ID, product_iamge, product_name, product_price, order_quantity, user_email) VALUES (?, ?, ?, ?, ?, ?)";
$stmt = mysqli_prepare($dbc, $addtocart);
mysqli_stmt_bind_param($stmt, "issdis", $hidden_id, $hidden_image, $hidden_name, $hidden_price, $order_quantity, $user_email);
mysqli_stmt_execute($stmt);
echo '<script type="text/javascript"> alert("Item added"); window.location="completesstore.php"; </script>';
}
mysqli_st_close($stmt);
mysqli_close($dbc);
?>
提前致谢。
【问题讨论】:
-
您遇到了什么错误?
-
没有错误;提交表单时,我无法将信息保存到数据库中(使用添加到购物车按钮)。
-
NSERT INTO tblorders (product_ID, product_iamge, product_name, product_price, order_quantity, user_email) VALUES (?, ?, ?, ?, ?, ?) ---- 什么?是为了?
-
它们表明这六个值是未知的,提交的内容都会被保存。
-
检查下面的答案,你在表单和帖子中没有相同的名字