我需要我的购物车页面才能记住商品的总价格,我有3 items
,而且它们的价格都相同(以简化我的生活)。用户可以使用另一页上的表格提交数量。我需要代码来记住item 1
的数量,然后在通过表单提交item 2
时,它将把前一个的数量与新项目提交的数量相加。到目前为止,iv已将其通过表单将数量发送到数组中,然后可以在需要时调用它,但是我无法弄清楚如何使它与之前的数量相加,得到新的数量总价给我。
我认为并不需要所有代码来帮助解决此问题,因此我只发布我认为需要的内容。如果您只想问一问,就可以看到全部内容,我将对其进行编辑以包含它。
我的代码:
<link id='stylecss' type="text/css" rel="stylesheet" href="css/cartstyle.css">
<link id='stylecss' type="text/css" rel="stylesheet" href="css/style.css">
<!DOCTYPE html>
<html lang="en">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<?php
session_start();
?>
<?php
require_once("head.php");
?>
<?php
require_once("nav.php");
?>
<?php
var_dump ($_POST);
if(!isset($_SESSION['cart'])) {
$_SESSION['cart']=[];
}
$cart = &$_SESSION['cart'];
$movieName = $_POST['movie_name'];
$quantity = $_POST['qty'];
if(isset($moveName)) {
$currentQuantity = $cart[$movieName];
$cart[$movieName] = $currentQuantity + $quantity;
} else {
$cart[$movieName] = $quantity;
}
var_dump($_SESSION);
?>
<div class="shopping-cart">
<!-- Title -->
<div class="title">
Shopping Bag
</div>
<!-- Product #1 -->
<div class="item">
<div class="image">
<?php
foreach ($cart as $movieName=> $quantity) {
if ($movieName == 'Inception') {
echo '<img src="incepcart.jpg" alt="got"/>';
}
}
?>
</div>
<div class="description">
<?php
foreach ($cart as $movieName=> $quantity) {
if ($movieName == 'Inception') {
echo "<p>" . $movieName . "x" . $quantity;
}
}
?>
</div>
</div>
<!-- Product #2 -->
<div class="item">
<div class="image">
<?php
foreach ($cart as $movieName => $quantity) {
if ($movieName == 'Game of Thrones: Season 1') {
echo '<img src="gotcart.jpg" alt="got"/>';
}
}
?>
</div>
<div class="description">
<?php
foreach ($cart as $movieName => $quantity) {
if ($movieName == 'Game of Thrones: Season 1') {
echo "<p>" . $movieName . "x" . $quantity;
}
}
?>
</div>
</div>
<!-- Product #3 -->
<div class="item">
<div class="image">
<?php
foreach ($cart as $movieName=> $quantity) {
if ($movieName == 'Friends Season 1') {
echo '<img src="friendscart.jpg" alt="got"/>';
}
}
?>
</div>
<div class="description">
<?php
foreach ($cart as $movieName=> $quantity) {
if ($movieName == 'Friends Season 1') {
echo "<p>" . $movieName . "x" . $quantity;
}
}
?>
</div>
</div>
<div class="rhsidee">
<?php
if ($movieName == 'Game of Thrones: Season 1') {
}
$total = $_POST['qty'] * 19.99;
echo "<p>Total <span class\"price\" style=\"color:black\"><b>$total</b></span>"
?>
</div>
<?php
echo $currentQuantity * 20
?>
</div>
</div>
</div>
<form action="product.php">
<button class="prod" type="submit">Continue Shopping </button>
</form>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br>
<?php
require_once("footer.php");
?>
还有我的其中一个表单的代码,该表单将数据提交到cart.php:
<form action="carttest.php" method="post">
<input type="hidden" name="movie_name" value= "Game of Thrones: Season 1" />
<input type = "hidden" name = "id" value = "M01" />
<br>
</select>
<div class="widthc">
<button class="prod" id="minus">−</button>
<input type="number" name="qty" value="0" id="qty" min="0" max="15"/>
<button class="prod" id="plus">+</button>
<br><br>
<button class="prod" type="submit"> Submit</button>
</form>
答案 0 :(得分:1)
如@sudhansu所述,会话是此处的最佳选择,此处您可以做的是为每个项目创建会话的键值对。
例如在为item_CNT提交数量时,您只需使用以下键设置会话值即可。
$_SESSION[itemCNT][quantity] = 100;
$_SESSION[itemCNT][name] = 'name';
$_SESSION[itemCNT][id] = 71273928739;
您可以在用户添加特定项目的数量时将CNT递增。
您可以在需要时遍历SESSION数组。您可以从任何页面访问此会话。
答案 1 :(得分:0)
保存购物车值。您可以通过三种方式做到这一点。
如果要跟踪用户的购物车。您可以创建购物车表。并将数量和项目ID的值放入购物车页面。如果您需要特定会话的价值,只需将其存储在会话中即可。以及是否要将其存储在用户的浏览器中。只需将其存储在cookie中即可。