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 关注
- 139 浏览
添加回答
举报