php - 基于复选框在 PHP 中是否被选中的变量增量

标签 php checkbox

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

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

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

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

代码片段:

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

最佳答案

您可以考虑根据您的目的使用 session 变量。

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

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']; 

}

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

session_destroy();

请注意,使用 PHP session 的良好做法是一个完全独立的问题,您可以通过谷歌搜索。

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>

请告诉我是否有帮助。

关于php - 基于复选框在 PHP 中是否被选中的变量增量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22386787/

相关文章:

php - 从数据库读取值后显示选中和未选中的复选框列表不起作用

android - 在android中单击Listview的单个项目时选择ListView的多个项目

php - 使用 php 将 mysql 数据转换为带有附加信息的 json

php - vBulletin 作为整个网站的登录名(编辑 : a certain amount of progress has been made)

javascript - 如何使用 JavaScript 和 HTML 开发复选框表单?

css - Cakephp 水平复选框

javascript - 用图像替换复选框?

php - 从 mysql 检索阿拉伯文本时出现问题

php - 如何在 <td> 中的单行中获取数据,数据库中具有相同 ID 的多个条目

php - 在购物车、结帐和帐户上隐藏 woocommerce 店面手持式页脚