所以我在我的页面上有这段代码menu.php。它显示我数据库内的所有产品,用户可以选择订购哪一种产品。使用foreach循环,如果有更多的项目添加
$prod_query=mysqli_query($con,"SELECT * FROM tblproducts");
$num_rows_prod=mysqli_num_rows($prod_query);
echo "<div class='row'>";
while($fetch=mysqli_fetch_assoc($prod_query))
{
$ppid=$fetch['p_pid'];
$pname=$fetch['p_name'];
$pprice=$fetch['p_price'];
$pimg='<img src="data:image/jpeg;base64,'. base64_encode($fetch['p_image']). '" width="100%" height="280">';
echo "
<form method='post' action='order.php'>
<div class='col-lg-4'>
<div class='panel panel-primary'>
<div class='panel-heading'>
<h3 class='panel-title'>$pname | ₱$pprice</h3>
</div>
<div class='panel-body'>
$pimg<hr />
<input type='hidden' name='id' value='$ppid'>
<button class='btn btn-primary' name='btnaddcart' type='submit'>Order Now!</button>
</div>
</div>
</div>
</form> ";
}
echo "</div>";
当用户选择订购哪一个,他现在可以点击订购按钮现在,现在会重定向到order.php页。
而在我的order.php页面中,它显示了他通过使用$ _POST来确定它所选择的产品的表格,其ID为menu.php。
$p=$_POST['id'];
$order_query=mysqli_query($con, "SELECT * FROM tblproducts WHERE p_pid=$p");
$num_rows_order=mysqli_num_rows($order_query);
while($fetch=mysqli_fetch_assoc($order_query))
{
$ppid=$fetch['p_pid'];
$pname=$fetch['p_name'];
$pprice=$fetch['p_price'];
}
foreach ($order_query as $p) {
echo "<form class='form-horizontal' action='' method='POST'>
<fieldset>
<legend>Place Order</legend>
<table class='table table-striped table-hover'>
<thead>
<tr class='success'>
<th>Name</th>
<th>Price</th>
<th>Quantity</th>
</tr>
</thead>
<tbody>
<tr class='active'>
<td>$pname</td>
<td>₱$pprice /each</td>
<td><div class='form-group'>
<div class='col-lg-4'>
<input class='form-control' name='inputquant' value='1' type='number'>
</div>
</div></td>
</tr>
</tbody>
</table>";
}
?>
<div class="form-group">
<div class="col-lg-10 col-lg-offset-2">
<button type="submit" name="btnaddorder" class="btn btn-primary">Add More Order</button>
</div>
</div>
,你可以在的foreach和PHP看到外面有一个添加更多的命令按钮,在那里,如果他/她想要添加更多的产品,用户可以选择。我想要做的是当他点击按钮时,它会再次被重定向到菜单,如果他选择另一个产品添加到他的购物车上,它将被列在页面上。但是当我这样做的时候,它所做的只是通过单击添加更多产品来替换旧值。就像是; '首先我点了一份披萨,然后决定添加一颗玉米片。订单页面显示玉米片和覆盖披萨,而不是显示他们两个。我一直在困扰这个问题一段时间,并决定现在就问这里。如果有人能帮助我,这将是非常好的。提前致谢!
你的问题有许多解决方案。将用户选择的产品存储在数据库中,存储在'$ _SESSION'中。这取决于你自己决定。 –
@u_mulder您认为最简单或首选的解决方案最好吗?因为当我使用会话时,它只保存一个产品。在数据库上时,我不知道如何去做。 – Sync
没有最佳解决方案。如果你不能在会话中存储某些内容 - 你显然会这样做__wrong__,并可以提出另一个问题。 –