помогите правильно вывести данные из json в html
validate__reg.php
$error_fields = [];
$error_length = [];
if(strlen($login) < 6){
$error_fields[] = 'login';
$error_length[] = 'Логин не может быть меньше 6 символов';
}
if(strlen($email) < 6){
$error_fields[] = 'email';
$error_length[] = 'Email не может быть меньше 6 символов';
}
$dog = "@";
if(strpos($email, $dog) === false){
$error_fields[] = 'email';
}
if(strlen($password) < 6){
$error_fields[] = 'password';
$error_length[] = 'Пароль не может быть меньше 6 символов';
}
if(strlen($passwordConfirm) < 6){
$error_fields[] = 'passwordConfirm';
}
if(!empty($error_fields)){
$response = [
"status" => false,
"type" => 1,
"fields" => $error_fields,
"length" => $error_length
];
echo json_encode($response);
die();
}
reg.js
data.length.forEach(function(leng) {
$('.form-text').html(leng);
});
html
<div class="form-text"></div>
нужно чтобы под каждым inputом выводилось сообщение которое присвоено $error_length[], а выводится одинаковое у всех, которое записано в массив самым последним. как сейчас выводится - https://i.stack.imgur.com/BHulu.png
Ответы (1 шт):
Автор решения: Алексей Шиманский
→ Ссылка
Попробуйте так:
data.length.forEach(function(leng, index) {
$(`.form-text:eq(index)`).html(leng);
});
Но подход не совсем корректный, потому что где-то поля могут быть заполнены корректно, а вы пытаетесь по всем пробегаться. Нужно как минимум знать какому полю какие ошибки показывать, например в массив с errors держать ключи для полей и уже к каждому ключю вести в соответствие свои ошибки