如果表单有验证错误,我能够显示成功和失败消息,但我不知道如何让错误在这个php代码中显示一个错误:
$errors = array();
$response = array();
if(empty($_POST['name'])) {
$errors['name'] = "Name required";
}
if(empty($_POST['email'])) {
$errors['email'] = "Email required";
}
$response['errors'] = $errors;
if($errors) {
$response['success'] = false;
$response['message'] = "Fail";
} else {
$reponse['success'] = true;
$response['message'] = "<div class='alert alert-success'>Article added</div>";
}
echo json_encode($response);
我需要改变的路线可能是:
$response['message'] = "Fail";
答案 0 :(得分:0)
我不确定我是否理解您的问题,但如果目标是让用户获取遇到的错误列表,那么您所做的一切都非常正确。
错误在
$response['errors']
所以$ response的json_encoded结果允许Javascript(客户端)将这些错误作为数组浏览,并正确打印它们。
您不应该返回HTML格式的文本。它是View(客户端)根据CSS规则呈现结果的角色。
所以我想说这里没有什么可以改变的。成功== false时,客户必须打印{ 'errors' : { ... }}
如果您不想/不想编辑客户端Javascript /呈现页面,则必须将字符串与<br>
或<ul><li>
连接起来,并在$response['message']
中提供此字符串{1}}。它很难看,但是有约束力的人仍然有解决方案。
答案 1 :(得分:0)
您是否尝试在检测到错误消息时添加错误消息 $ errors = array(); $ response = array();
if(empty($_POST['name'])) {
$errors['name'] = "Name required";
response['message'] = "<div class='alert alert-danger'>Name Required</div>";
}
if(empty($_POST['email'])) {
$errors['email'] = "Email required";
response['message'] = "<div class='alert alert-danger'>Email Required</div>";
}
$response['errors'] = $errors;
if($errors) {
$response['success'] = false;
// $response['message'] = "Fail"; we added the message during the error detection
} else {
$response['success'] = true;
$response['message'] = "<div class='alert alert-success'>Article added</div>";
}
echo json_encode($response);