【发布时间】:2019-03-16 10:12:16
【问题描述】:
我需要我的购物车页面能够记住商品的总价格,我有3 items,它们都是相同的价格(让我自己更简单)。用户可以使用另一个页面上的表单提交数量。我需要代码来记住item 1 的数量,然后当item 2 通过表单提交时,它会将先前的数量与新项目提交的数量相加。到目前为止,我让它通过表单将数量发送到数组中,然后可以在需要时调用它,但我不知道我应该如何让它添加以前的数量和新的数量给我一个总价。
我认为不需要所有代码来帮助解决这个问题,所以我只发布我认为需要的代码。如果您想查看所有内容,尽管提出要求,我会编辑我的帖子以包含它。
我的代码:
<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>
【问题讨论】:
-
你的 isset($moveName) 有一个拼写错误的变量,它不会帮助你的代码
-
您在哪里将
$currentQuantity设置为其原始值? -
嗯,我认为 $currentQuantity + $quantity 会给 $currentQuantity 它的价值。我需要有一个它,所以 $currentQuantity 有一个值或 0 开头吗?