变量增量基于一个复选框是否在PHP中被选中


Variable increment based on a check box being checked or not in PHP

我对下面的代码片段有两个要求。

  • 当我点击复选框时,var将被增加。——

  • 如果复选框没有,var应该保存之前的数字检查。- 未完成

当前,如果你不选中var的复选框,它会变回1。

代码片段:

if (isset($_POST['var'])) { 
    $var = $var + 1; 
} else { 
    $var = $_POST['var']; 
}

您可以考虑使用会话变量。

首先,您可以像这样开始新的会话:

session_start();

然后,你可以按照以下方式做你想做的事:

// Initialize $_SESSION['var'], if needed
if(!isset($_SESSION['var'])) {
    $_SESSION['var'] = 0;   
}
if (isset($_POST['var'])) {
    // Increment the var
    $var = $_SESSION['var'] + 1; 
    // Save the var as a session variable
    $_SESSION['var'] = $var;
} else { 
    // Restore the var from the session variable
    $var = $_SESSION['var']; 
}

另外,在某些时候,您可能想要销毁会话数据。在PHP中执行如下:

session_destroy();

请考虑使用PHP会话的良好实践是一个完全独立的问题,你可以谷歌。

点击查看更多关于PHP会话的沙箱级别的信息。

UPD:这里是一个完整的PHP/HTML代码,您正在寻找的工作示例:

<?php session_start(); ?>
<!DOCTYPE html>
<html>
    <head>
    </head>
    <body>
        <form method="POST">
            Increment $var <input type="checkbox" name="var" value="var">
            <input type="submit" value="Submit">
        </form>
        <p>
            <?php
            // Initialize $_SESSION['var'], if needed
            if(!isset($_SESSION['var'])) {
                $_SESSION['var'] = 0;       
            }
            if (isset($_POST['var'])) {
                // Increment the var
                $var = $_SESSION['var'] + 1; 
                // Save the var as a session variable
                $_SESSION['var'] = $var;
            } else { 
                // Restore the var from the session variable
                $var = $_SESSION['var']; 
            }
            echo $var;
            ?>
        </p>
    </body>
</html>

请告诉我是否有帮助。