首页 > 解决方案 > 提交时表单消失 购物车

问题描述

所以目前我正在尝试使用 PHP 创建一个购物车,目前我无法提交将产品添加到购物车的表单。所以本质上我已经将我的数据库链接到我的 shop.php 页面,所以它循环遍历数据库中的每个项目并显示产品。每个产品都有一个使用 POST 的表单,当提交时,会将项目添加到购物车 SESSION。

所以目前,当我单击“添加到购物车”按钮时,该项目已添加并且工作正常。但是,当我再次单击同一商品的“添加到购物车”时,整个产品库将停止工作。仅当我尝试添加已添加的项目时才会出现此问题。我觉得这个问题围绕着两次提交相同的表格,但我不太确定。

<div class="container">'
    <div class="box">'
        <?php
        $query = "SELECT * FROM items";
        $result_set = mysqli_query($link, $query);
if (mysqli_num_rows($result_set) > 0){
  while($row = mysqli_fetch_array($result_set)){
  ?>
  <div class="displayCase"><br><br><br>
      <form method="POST" action="shop.php?action=add&id=<?php echo $row['id']; ?>">
          <img class="phone1" src="data:image/jpeg;base64,<?php echo base64_encode($row['image'] )?>" />
          <h1> <?php echo $row['name']  ?> </h1>
          <h2> <?php echo "$" . $row['price'] ?> </h2>
          <label id="QTY">QTY </label><input class="quantity" id="id_form-0-quantity" min="0" name="form-0-quantity" value="1" type="number"><br />
          <select class="phoneType">
              <option value="X">Select Device</option>
              <option value="X">iPhone X/XS</option>
              <option value="X">iPhone X/XS Max</option>
              <option value="X">iPhone 11</option>
              <option value="X">iPhone 11 Pro</option>
              <option value="X">iPhone 11 Pro Max</option>
          </select><br />
          <input type="hidden" name="name" value="<?php echo $row['name'] ?> ">
          <button type="submit" name="add" value="addToCart">Add To Cart</button>
      </form>
  </div>
        <?php
      }
    }
    ?>
  </div>
</div>

干杯

编辑:好的,由于某种原因,在提交表单后它似乎需要完全重新加载才能工作。所以我尝试了这个,它似乎解决了它。仍然不确定为什么会这样,以及这是否是一种干净的方式或者是否有更好的方式来做到这一点

  if (isset($_POST['name'])){
  header("Loction: redirect.php");
}

然后我创建了一个redirect.php 页面重定向回shop.php

标签: phphtmlmysqlsqlforms

解决方案


推荐阅读