php - 如何更改php代码以在每个输入框下显示错误
问题描述
我有以下代码:
if(isset($_POST['submit'])){
if (! isset($_POST['firstname'])) {
$error[] = "Please fill out all fields";
}
if (! isset($_POST['surname'])) {
$error[] = "Please fill out all fields";
}
........
经验证:
if (strlen($_POST['firstname']) < 2){
$error[] = 'First name cannot be empty';
}
if (strlen($_POST['surname']) < 2){
$error[] = 'Please provide your surname';
}
......
对数据库进行更多检查....
这会检查错误并一次性显示它们:
if(isset($error)){
foreach($error as $error){
echo '<p class="error-login">'.$error.'</p>';
}
}
虽然这工作正常,但我希望在发生错误的每个输入框下显示错误。
我不想更改整个代码,只想对此进行必要的更改,这是我自己无法做到的。
将它们放入数组中是唯一的方法还是有更简单的方法?
谢谢。
解决方案
$error
方法是 -在某个键下添加错误,我想 - 输入字段的名称:
if(isset($_POST['submit'])){
// I use key `all` for errors that don't belong to any field
if (! isset($_POST['firstname'])) {
$error['all'] = "Please fill out all fields";
}
if (! isset($_POST['surname'])) {
$error['all'] = "Please fill out all fields";
}
if (strlen($_POST['surname']) < 2){
$error['surname'] = 'Please provide your surname';
}
在您的 html 标记中:
// general errors, not related to inputs
if(isset($error['all'])){
foreach($error['all'] as $err){
echo '<p class="error-login">'.$err.'</p>';
}
}
<input type="text" name="surname" />
<?php
if(isset($error['surname'])){
foreach($error['surname'] as $err){
echo '<p class="error-login">'.$err.'</p>';
}
}
推荐阅读
- python - 使用Python在excel中打印唯一名字姓氏电话号码电子邮件和地址详细信息的列表
- apache - htaccess中多个RewriteCond的否定
- reactjs - ReactJS 手风琴 - 在应该一次打开一个手风琴时打开所有手风琴
- mysql - 在 MySQL 数据库中选择时间线
- oracle - Oracle syslog 审计 - syslog 服务器上没有更新消息
- json - 在 Postman 中编写测试套件
- graphql - 自定义架构、接口、@fileByRelativePath 和 gatsby-image
- maven - 对于 Java 7 和 Java 6,“Maven 构建失败并出现“javax.net.ssl.SSLPeerUnverifiedException:peer not authenticated”
- groovy - 为什么我在使用 log4j 记录时有问题而不是行号
- javascript - 带有来自链接的属性的 JSON 附加响应