我尝试创建一个变量来存储点击按钮的数量。不幸的是我得到了这个错误:
Undefined variable: counter
这是我的代码:
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$counter = isset($_POST['counter']) ? $_POST['counter'] : 0;
if(isset($_POST["button"])){
$counter++;
echo $counter;
}
}
这是一种形式:
<form action = "<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method = post>
<input type = "submit" name = "button" value = "Submit" >
<input type = "hidden" name = "counter" value = "<?php print $counter; ?>"; />
</form>
有人知道我做错了吗?
答案 0 :(得分:3)
或者,如果要保存计数器,可以使用会话。像这样:
session_start();
// if counter is not set, set to zero
if(!isset($_SESSION['counter'])) {
$_SESSION['counter'] = 0;
}
// if button is pressed, increment counter
if(isset($_POST['button'])) {
++$_SESSION['counter'];
}
// reset counter
if(isset($_POST['reset'])) {
$_SESSION['counter'] = 0;
}
?>
<form method="POST">
<input type="hidden" name="counter" value="<?php echo $_SESSION['counter']; ?>" />
<input type="submit" name="button" value="Counter" />
<input type="submit" name="reset" value="Reset" />
<br/><?php echo $_SESSION['counter']; ?>
</form>
顺便说一句,您当前的代码会显示Undefined index error
,因为您在表单上echoing
$counter
但尚未初始化它。它只会在第一次提交表单时存在,而不是在第一次正常加载页面时存在。
答案 1 :(得分:1)
您的代码中没有错误。它在我的工作。你需要检查两点:
PHP代码应该在HTML之上,HTML代码将在PHP代码之后。因此$counter
变量将被初始化。
PHP和HTML代码应位于同一页面上。
由于OP编辑了问题:因此,行$counter = isset($_POST['counter']) ? $_POST['counter'] : 0;
不应该在if-block中。可以肯定的是,**将此行作为PHP文件的第一行。然后,整个页面只能使用$counter
变量。
答案 2 :(得分:0)
答案 3 :(得分:0)
您尝试使用未取消的变量
<input type = "hidden" name = "counter" value = "<?php print $counter; ?>"; />
................................................................^
这个var不存在,因为错误说明了。猜你的代码设置错误。
像php不在同一侧或不在html之上