基于在PHP中检查或不检查的复选框的可变增量

时间:2014-03-13 17:46:46

标签: php checkbox

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

  • 单击复选框时,var将递增。 - 完成

  • 如果没有复选框,var应保存以前的号码 检查。 - 未完成

目前,如果不选中var的复选框,则会更改回1。

代码段:

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

1 个答案:

答案 0 :(得分:1)

您可以考虑将会话变量用于您的目的。

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

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会话的良好做法是一个完全独立的问题,您可以使用谷歌。

Click for some more sandbox-level info on PHP Sessions

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>

请告诉我是否有帮助。