基于PHP中是否选中复选框的变量增量
我对下面的代码片段有两个要求基于PHP中是否选中复选框的变量增量,php,checkbox,Php,Checkbox,我对下面的代码片段有两个要求 单击复选框时,var将递增。-完成 如果未选中复选框,var应保存上一个数字 核对未完成 当前,如果不选中var的复选框,它将变回1 代码片段: if (isset($_POST['var'])) { $var = $var + 1; } else { $var = $_POST['var']; } 您可以考虑使用会话变量来实现。 首先,您可以这样开始新的会话: session_start(); 然后,你可以用以下方式做你想做的事情:
- 单击复选框时,
将递增。-完成var
- 如果未选中复选框,
应保存上一个数字 核对未完成var
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会话的良好实践是一个完全独立的问题,您可以在谷歌上搜索
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>
增量$var
请让我知道它是否有用。你能用“隐藏”吗?你的if-else语句不符合逻辑。您的意思是,如果POST变量var存在,则增加$var,但如果它不存在,则将$var设置为不存在的变量。你提到的“以前的号码”是什么?是$var吗?是的,前面的数字是var。这就是我尝试过的方法。但我对任何知道如何根据复选框是否被选中来增加变量的人都持开放态度。如果复选框没有被选中,我希望任何数字都是可变的。如果你把变量增加了3倍,但不是第四次,我希望它保存3。当你说“保存”前一个数字时,你的意思是什么?将其保存在变量中,或保存在会话变量中,或保存在数据库中,或保存在文件中?不,抱歉,与以前一样。@user3416665,我在解决方案中发现了一个错误,现在它已更新。如果有效,请尝试。现在无论是否选择$var,它都会递增。谢谢你的帮助@用户3416665,再更新一次。它在我的测试环境中工作得非常好。请检查它,如果它仍然不工作,我会发布我用于测试的整个.php文件。你的代码肯定能工作。它一定是我的代码:S。非常感谢你的帮助。真的很感激!