如何创建一个具有自身值和另一个变量的变量

时间:2018-10-11 10:48:10

标签: php html arrays variables

我需要我的购物车页面才能记住商品的总价格,我有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>

2 个答案:

答案 0 :(得分:1)

如@sudhansu所述,会话是此处的最佳选择,此处您可以做的是为每个项目创建会话的键值对。

例如在为item_CNT提交数量时,您只需使用以下键设置会话值即可。

$_SESSION[itemCNT][quantity] = 100;
$_SESSION[itemCNT][name] = 'name';
$_SESSION[itemCNT][id] = 71273928739;

您可以在用户添加特定项目的数量时将CNT递增。

您可以在需要时遍历SESSION数组。您可以从任何页面访问此会话。

答案 1 :(得分:0)

保存购物车值。您可以通过三种方式做到这一点。

  • 会话
  • 饼干
  • Db

如果要跟踪用户的购物车。您可以创建购物车表。并将数量和项目ID的值放入购物车页面。如果您需要特定会话的价值,只需将其存储在会话中即可。以及是否要将其存储在用户的浏览器中。只需将其存储在cookie中即可。