[英]Button click counter [PHP]
我試圖創建一個變量來存儲點擊按鈕的計數。 不幸的是我得到了這個錯誤:
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>
誰知道我做錯了什么?
或者,如果要保存計數器,則可以使用會話。 像這樣:
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
但尚未初始化它。 它只會在第一次提交表單時存在,而不是在第一次正常加載頁面時存在。
您的代碼中沒有錯誤。 它在我的工作。 你需要檢查兩點:
PHP代碼應該高於HTML,HTML代碼將在PHP代碼之后。 這樣$counter
變量將被初始化。
PHP和HTML代碼應該在同一頁面上。
由於OP編輯了問題:那么,行$counter = isset($_POST['counter']) ? $_POST['counter'] : 0;
$counter = isset($_POST['counter']) ? $_POST['counter'] : 0;
不應該在if-block中。 可以肯定的是,**將此行作為PHP文件的第一行。 然后只有$counter
變量可用於整個頁面。
你試圖使用一個欠載的變量
<input type = "hidden" name = "counter" value = "<?php print $counter; ?>"; />
................................................................^
這個var不存在,因為錯誤說。 猜你的代碼設置錯誤了。
喜歡php不在同一側或不在html之上
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.