我对下面的代码片段有两个要求。
-
当我点击复选框时,
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>
请告诉我是否有帮助。