PHP添加到购物车无法正常工作(未成功添加数量)

PHP添加到购物车无法正常工作(未成功添加数量),php,Php,我有两个页面->product.php和cart.php。 当用户单击product.php上的“添加到购物车”按钮时,它将到达cart.php。然而,无论我点击多少次,我的数量都无法成功添加。数量始终保持为1 product.php echo '<form action="cart.php" method="POST">'; echo '<input type="hidden" name="quantity" value="0">'; echo '<input t

我有两个页面->product.php和cart.php。

当用户单击product.php上的“添加到购物车”按钮时,它将到达cart.php。然而,无论我点击多少次,我的数量都无法成功添加。数量始终保持为1

product.php

echo '<form action="cart.php" method="POST">';
echo '<input type="hidden" name="quantity" value="0">';
echo '<input type="submit" value="add to cart">';
echo '</form>';
if (isset($_POST["quantity"])){

$_POST["quantity"]=$_POST["quantity"]+1;
}
echo $_POST["quantity"];

我可以知道哪个部分出了问题吗

正如@Fred-ii所说,如果您使用session来实现此功能,那就太好了。如果您需要帮助以使您能够看到以下内容:

也考虑JavaScript中的一个有趣的插件,用于JS中的购物车: 或


正如我在评论中提到的,您需要为此使用会话,以便在每次单击按钮时增加一个数字

我必须承认,我从中提取/借用了以下内容(我可能会加上我的投票)

N.B:下面是第二个版本

如果在同一文件中使用:

<?php 

session_start();

if(isset($_POST['reset'])){ 

   unset($_SESSION['number']);

   session_destroy();

$_SESSION['number']=0;

}

if(!isset($_SESSION['number'])){
    $_SESSION['number']=1;
}elseif(isset($_POST['next'])){

    $_SESSION['number']++;

}

echo '
<form action="" method="POST">
   <input class="big_b" type="submit" name="next" value="Add to cart" /> 
   <input type="submit" name="reset" value="Reset" /> 
</form>';

echo $_SESSION['number'];

echo''中删除
value=“0”
为什么这是隐藏输入?您是如何填写数量的?我正在测试添加到购物车功能,看看数量添加是否成功。这就是为什么我使用隐藏作为输入。即使我删除value=“0”,它仍然保持不变。“添加到购物车”通常涉及会话;你在用它们吗?顺便说一句,你的回音应该放在条件语句中。你的代码是有效的。“然而,无论我点击多少次,我的数量都不会成功添加。数量始终保持为1。”-因为这正是你的代码所做的。如果你想增加,你需要使用会话。我用这种方式尝试了会话,但它仍然和你的代码相同。现在可以了。但是,我只想问你这个问题;如果我们按F5并刷新它,数字将增加1。有什么方法可以防止这种情况发生吗?@gosulove您可以使用标题重定向,但不能同时“回显”。如果报头不工作,那么您可能在报头被调用之前进行输出。您可能需要使用本问答中概述的其他方法重定向-如果您觉得问题已经解决,您应该通过接受答案将其标记为已解决。thx Fred。我仍在使用添加、删除到购物车。我可能有问题,很快再发一次。希望看到你的回复:)@gosulove很高兴能帮上忙。您必须发布一个新问题,我希望您不要修改现有问题;-)对我必须在30分钟内发布。我遇到了一个新问题
<?php 

echo '
<form action="next_page.php" method="POST">
   <input class="big_b" type="submit" name="next" value="Add to cart" /> 
   <input type="submit" name="reset" value="Reset" /> 
</form>';
<?php 

session_start();

// Reset to 1
if(isset($_POST['reset'])){ 

   unset($_SESSION['number']); // unset the session

   session_destroy(); // make sure the session is destroyed

$_SESSION['number']=0; // reset it back to zero

}

if(!isset($_SESSION['number'])){
    $_SESSION['number']=1;
}elseif(isset($_POST['next'])){
    $_SESSION['number']++;

}

echo $_SESSION['number'];
if(isset($_SESSION['number']) && $_SESSION['number'] == 5) {

echo "You have reached 5. The session has been reset back to zero.";

   unset($_SESSION['number']);

   session_destroy();

$_SESSION['number']=0;

}