Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中每次单击按钮时增加变量中的数字_Php_Html - Fatal编程技术网

如何在php中每次单击按钮时增加变量中的数字

如何在php中每次单击按钮时增加变量中的数字,php,html,Php,Html,我正在创建一个购物车,这是我用php创建的。我有两个按钮,当点击时,允许用户增加或减少项目的数量 if(isset($_POST['add_to_cart']) && isset($_GET['id'])) { $id = $_GET['id']; // Check if there is a session for the cart set already, if not then set one. if(!isset($_SESSION['shopp

我正在创建一个购物车,这是我用php创建的。我有两个按钮,当点击时,允许用户增加或减少项目的数量

if(isset($_POST['add_to_cart']) && isset($_GET['id'])) {
    $id = $_GET['id'];

    // Check if there is a session for the cart set already, if not then set one.
    if(!isset($_SESSION['shoppingcart'])) {
        $_SESSION['shoppingcart'] = [];
    }

    $quantity = $_POST["amount"];

    $item = [
        "id"        => $id,
        "quantity"  => $quantity
    ];
    }
当用户单击加号按钮时,数量增加1,但是如果再次单击,则不会发生任何事情。有没有一种方法可以让用户说单击按钮直到数量增加到20

这是我的密码:

我的代码的第一部分检查是否在项目上单击了原始的“添加到购物车”按钮。如果是,则获取项目的ID。项目ID恢复后,他们将检查是否已创建购物车会话。如果没有找到购物车会话,那么它将创建一个。创建会话后,它将检查已添加到表单中的数量。接下来,它创建一个数组调用项,它将保存该项的ID和数量

if(isset($_POST['add_to_cart']) && isset($_GET['id'])) {
    $id = $_GET['id'];

    // Check if there is a session for the cart set already, if not then set one.
    if(!isset($_SESSION['shoppingcart'])) {
        $_SESSION['shoppingcart'] = [];
    }

    $quantity = $_POST["amount"];

    $item = [
        "id"        => $id,
        "quantity"  => $quantity
    ];
    }
接下来,在购物车文件上,代码检查是否存在购物车会话以及是否至少存在一个项目。如果购物车中至少有一个项目,那么代码将为每个循环指定一个项目,以从数据库中获取每个项目

if(isset($_SESSION['shoppingcart']) && count($_SESSION['shoppingcart']) != 0) {
    $list = $_SESSION['shoppingcart'];
$total = 0;
    foreach($list as $item) {
        $id = $item['id'];

        $query = "SELECT * FROM item WHERE ItemID = '$id'";

        $result = mysqli_query($mysqli, $query);
        
    $row = $query_result->fetch_assoc();

        if (mysqli_num_rows($result) == 1){
            $row = mysqli_fetch_array($result);

            $id = $row['ItemID'];
            $name = $row['ItemName'];
            $image = $row['ItemImage'];
            $price = $row['Price'];
            $size = $row['Size'];
            $quantity = $item['quantity'];

            
        $subtotal = $price*$quantity;
        $total += $subtotal;
            
            ?>
HTML:


数量:

$quantity
似乎没有在代码中的任何地方定义。根据您所展示的,甚至第一个增量是如何工作的都有点不清楚。也许你遗漏了问题中的一些细节

但根据现有信息,这似乎更符合逻辑:

<?php
session_start();

if(isset($_POST['plus'])) {
   $quantity = (isset($_SESSION['quantity']) ? $_SESSION['quantity'] : 0);

   if ($quantity < 20) {
     $quantity++; 
     $_SESSION['quantity'] = $quantity; 
   }
}

“…但是,如果他们再次单击,则不会发生任何情况。”-这可能表示代码的某些部分将数量重置为原始值,或者请求实际上没有触发。你是如何定期或通过一些JS提交此表单的?有点奇怪,因为我没有在任何时候重置数量值
input type=“input”
不是真的。看看你是对的,它应该是文本类型,我有多蠢hahaI会尝试这个,如果它不工作,我会添加我的代码的其余部分谢谢。我只是添加了一点,使其在值达到20时停止,并纠正了我注意到的一个小问题。谢谢,我已经添加了代码的其余部分。不清楚代码的其余部分与原始代码的关系如何?请说明您是如何尝试将其与我在此处发布的内容相结合的,和/或解释在尝试我的建议后您仍然存在的问题。甚至不清楚它们是否是同一脚本的一部分,或者是响应同一表单提交而执行的。我们无法神奇地理解您的应用程序是如何工作的,或者所有不同的部分是什么,您需要提供非常清晰的上下文,并解释您发布的内容与问题的相关性。我已经添加了一些信息,希望这会有所帮助