奇怪的问题,但是为什么我没有单击按钮时提交表单

时间:2019-12-06 11:21:47

标签: php html arrays function

下面的代码是一个加号和减号按钮,假定是从我的购物车数量中加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感到陌生并尝试学习它的任何帮助。

1 个答案:

答案 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调用。