Как вывести сразу несколько различных ошибок в форме не в одном месте?
Здраствуйте, есть код формы :
<form method="POST" action="<?php echo get_template_directory_uri();?>/inc/submit.php" class="form__brief" id="form__brief">
<div id="note"></div>
<div class="form__section">
<label for="nameFull">Як до вас звертатись ?*</label>
<input name="nameFull" class="form__input" id="nameFull" type="text" placeholder="Алекс Бойко, просто Алекс" title="Скажіть, як до вас звертатись ?" required>
</div>
<div class="form__section">
<label for="nameCompany">Яку компанію представляєте ?</label>
<input name="nameCompany" class="form__input" id="nameCompany" type="text" placeholder="Моє дитя: google" title="З ким ми будемо співпрацювати ?">
</div>
<div class="form__section">
<label for="communication">Як з вами краще зв'язатись? *</label>
<textarea name="communication" class="form__input" id="communication" placeholder="Номер телефону, емейл, телеграм, вайбер, соц. мережа, голубина пошта." title="Оберіть зручний для вас спосіб зв'язку" maxlength="2000" min="3" value="message" wrap="hard" rows="8" required></textarea>
</div>
<div class="form__section">
<label for="more">Опишіть свою компанію, та, що дійсно хочете в ній покращити</label>
<textarea name="more" class="form__input" id="more" placeholder="Ми займаємось бруківкою та хочемо розробити власний бренд, сайт на який будуть переходити потенційні клієнти з реклами та соціальних мереж. У нас вже є сайт, але його зробили за 300$ і він відверто дуже поганий, не те чого ми чекали" title="Оберіть зручний для вас спосіб зв'язку" maxlength="2000" min="3" value="message" wrap="hard" rows="8"></textarea>
</div>
<div class="brief__btn">
<!-- <input class="btn" id="form__brief_btn" type="button" value="Відправити голуба"> -->
<button class="btn" id="form__brief_btn" type="submit" data-uri="<?php echo get_template_directory_uri(); ?>">Відправити голуба</button>
</div>
</form>
код jquery:
jQuery(document).ready(function($) {
$("#form__brief").submit(function() {
var uri = $('#form__brief_btn').attr('data-uri');
var marker_url = uri + '/inc/submit.php';
var str = $(this).serialize();
$.ajax({
type: "POST",
url: marker_url,
data: str,
success: function(msg) {
if(msg == 'OK') {
result = '<div class="ok">Сообщение отправлено</div>';
$("form").trigger("reset");
}
else {result = msg;}
$('#note').html(result);
}
});
return false;
});
});
Код php :
<?php
$post = (!empty($_POST)) ? true : false;
if($post) {
$nameFull = htmlspecialchars(trim($_POST['nameFull']));
$nameCompany = htmlspecialchars(trim($_POST['nameCompany']));
$communication = htmlspecialchars(trim($_POST["communication"]));
$more = htmlspecialchars(trim($_POST['more']));
$error = '';
if(!$nameFull) {$error .= "Вкажіть як до вас звертатись ? ";}
if(!$communication) {$error .= "Вкажіть один або більше варіантів зв'язку з вами";}
if(!$error) {
$address = "[email protected]";
$mes = "Ім'я: ".$nameFull."\n\nНазва компанії: ".$nameCompany."\n\nСпосіб зв'язку: " .$communication."\n\nДеталі: ".$more."\n\n";
$send = mail ($address,"Заявка",$mes,"Content-type:text/plain; charset = UTF-8\r\nReply-To:$nameFull\r\nFrom:$nameCompany <contact>");
if($send) {echo 'OK';}
}
else {echo '<div class="err">'.$error.'</div>';}
}
?>
Все вроде работает, но в случае нескольких ошибок, выводит их вместе.

Как реализовать вывод каждой ошибки над полем где она возникла и предоставить этим полям другие стили ? Буду очень благодарен за подсказку!
Ответы (1 шт):
Автор решения: user418587
→ Ссылка
Собирай ошибки в массив например array_push($error, "Вкажіть як до вас звертатись ?");
и в конце делаешь цикл с выводом всех ошибок по очереди
foreach ($error as $value) {
echo ('<div class="err">' .$value.'</div>');
}