1 回答

TA貢獻1829條經驗 獲得超9個贊
所以,這里的問題是你有 3 種狀態(valid、no-valid和no-validation-used),而不是你一開始想到的兩種狀態。
因此,最簡單的解決方案是添加另一個標志來告訴驗證已經開始,例如:
// define variables and set to empty values
$nameErr = "";
$name = "";
$validationApplied = false; // here
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$validationApplied = true;
if (empty($_POST["name"])) {
$nameErr = "Name is required";
} else {
$name = test_input($_POST["name"]);
}
}
然后,您可以在 html 中檢查這兩個變量,如下所示:
<div class="<?php if ($validationApplied) { echo empty($nameErr) ? 'success-validate' : 'failure-validate'; } ?>">
</div>
另一種解決方案是檢查$nameErr和$_SERVER["REQUEST_METHOD"] == "POST"。它與上面的方法相同,只是代替您檢查的不同標志REQUEST_METHOD:
<div class="<?php if ($_SERVER["REQUEST_METHOD"] == "POST") { echo empty($nameErr) ? 'success-validate' : 'failure-validate'; } ?>">
</div>
- 1 回答
- 0 關注
- 174 瀏覽
添加回答
舉報