下面的代码是一个加号和减号按钮,假定是从我的购物车数量中加1或减1。
<form method="post" style="margin: 0; display: inline-block;">
<button method="submit" name="plusBtn" value="add">+</button>
<button method="submit" name="minusBtn" value="minus">-</button>
<input type="hidden" name="productID" value="<?php echo $array['shoeId']; ?>">
</form>
这是加减1的功能
function plusQuantity(){
$productId = $_POST['productID'];
foreach($_SESSION['finalCart'] as $eachItem){
if($eachItem['shoeId'] === $productId){
$eachItem['quantity']+1;
}
}
}
function minusQuantity(){
$productId = $_POST['productID'];
foreach($_SESSION['finalCart'] as $eachItem){
if($eachItem['shoeId'] === $productId){
if($eachItem['quantity'] = 1){
unset($eachItem['shoeId']);
} else {
$eachItem['quantity']-1;
}
}
}
}
这就是我调用函数的方式
if(isset($_POST['plusBtn'])){
plusQuantity();
print_r($_SESSION['finalCart']);
}
if(isset($_POST['minusBtn'])){
minusQuantity();
}
但是,该函数只是在页面加载时自行加载,并且该函数似乎也不起作用,但是我在调用时添加了诸如print_r($ _ SESSION ['finalCart']甚至某些回显文本函数部分,以查看该函数是否正在运行,以及实际上是否正在运行。非常感谢您能对php感到陌生并尝试学习它的任何帮助。
答案 0 :(得分:0)
执行此操作的正确方法是使用Ajax调用,该调用会触发JavaScript调用并获得响应,而不必在提交时重新加载页面。
或者,您可以(非常难看的解决方案)制造两种形式:
<form action="/action_page.php">
<input type="hidden" name="plusBtn" value="add">
<input type="submit" value="+">
</form>
<form action="/action_page.php">
<input type="hidden" name="plusBtn" value="minus">
<input type="submit" value="-">
</form>
但是我宁愿设置单选按钮等样式,并使用适当的Ajax调用。