我有2页 - > 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>';
cart.php
if (isset($_POST["quantity"])){
$_POST["quantity"]=$_POST["quantity"]+1;
}
echo $_POST["quantity"];
我可以知道哪个部分出了问题吗?
答案 0 :(得分:2)
正如我在评论中提到的那样,你需要为此使用会话,以便在每次点击按钮时增加一个数字。
我必须承认我从this answer提取/借用了以下内容(我赞成我可能会添加)。
N.B:以下的第二个版本就位于其下方。
如果在同一文件中使用:
TypeError: __call__() missing 1 required positional argument: 'y_true'
如果在两个文件中使用:
文件1:
<?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'];
文件2:(next_page.php)
<?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'];
答案 1 :(得分:1)
正如@Fred -ii所说,如果您需要使用会话来实现此功能,如果您需要帮助以使您可以看到: shopping cart Session php
还要考虑在javascript中跟随js中购物车的有趣插件: http://www.simplecartjs.org或 http://www.jqueryrain.com/?ZpwnOCVU