<div class="forma">
<div class="form-at">
<div class="validate-input-at w-50" data-validate="Required field">
<input class="input-at" type="text" name="name-at" placeholder="Name" />
<span class="focus-input-at"></span>
</div>
<div class="validate-input-at w-50" data-validate="Required field">
<input class="input-at" type="tel" name="project-at" placeholder="Project link" />
<span class="focus-input-at"></span>
</div>
<div class="validate-input-at w-50" data-validate="Required field">
<input class="input-at" type="email" name="email-at" placeholder="Email *" />
<span class="focus-input-at"></span>
</div>
<div class="validate-input-at w-50" data-validate="Required field">
<input class="input-at" type="tel" name="phone-at" placeholder="Phone" />
<span class="focus-input-at"></span>
</div>
<div class="validate-input-at w-50" data-validate="Required field">
<input class="input-at" type="text" name="social-at" placeholder="Social" />
<span class="focus-input-at"></span>
</div>
<input type="hidden" name="subject-at" value="Тема формы">
<button id="submit-at" class="form-at-btn"><?= $resArticle['btn3'] ?></button>
<div class="contact__br"></div>
<input checked="checked" class="input-at" id="checkbox-at" type="checkbox" name="checkbox-at" onchange="document.getElementById('submit-at').disabled = !this.checked;" />
<label for="checkbox-at">
I hereby confirm that I have read and agree with the use <a class="contact__police" href="police">of the service </a>
</label>
</div>
<div class="result-at"></div>
</div>
(function ($) {
$('.forma').each(function() {
var $frm = $(this);
var input = $(this).find('.validate-input-at .input-at');
var butsend = $(this).find('.form-at-btn');
butsend.on('click',function(){
var check = true;
for(var i=0; i<input.length; i++) {
if(validate(input[i]) == false){
showValidate(input[i]);
check=false;
}
}
// Отправка формы
if (check == true) {
$.post("/send.php", $frm.find(".form-at select, .form-at input, .form-at textarea").serialize(),
function(data){
if(data.frm_check == 'error'){
$frm.find(".result-at").html("<div class='error-at'>Ошибка: " + data.msg + "</div>");
} else {
$frm.find(".result-at").html("<div class='success-at'>Ваше сообщение отправлено!</div>");
$frm.find(".form-at").fadeOut(500);
$frm.find(".input-at").val("");
}
}, "json");
return false;
}
});
$('.form-at .input-at').each(function(){
$(this).focus(function(){
hideValidate(this);
});
});
});
function validate(input) {
/* Если нужно проверять валидность почты, раскомментируйте строчки ниже */
/*
if($(input).attr('type') == 'email' || $(input).attr('name') == 'email-at') {
if($(input).val().trim().match(/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{1,5}|[0-9]{1,3})(\]?)$/) == null) {
return false;
}
}
*/
if($(input).val().trim() == ''){
return false;
}
}
function showValidate(input) {
var thisAlert = $(input).parent();
$(thisAlert).addClass('alert-validate');
}
function hideValidate(input) {
var thisAlert = $(input).parent();
$(thisAlert).removeClass('alert-validate');
}
})(jQuery);
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$to = "incodice@yandex.ru"; // Куда идет письмо
$from = "info@my-site.ru"; // От кого идет письмо
$name = $_POST['name-at'];
$email = $_POST['email-at'];
$message = $_POST['message-at'];
$subject = $_POST['subject-at'];
$return_arr = array();
// Еще раз проверим заполненные поля формы.
// Эту проверку можно удалить или удалить проверку на JS
if($name=="" || $email=="" || $message=="" || $subject=="") {
$return_arr["frm_check"] = 'error';
$return_arr["msg"] = "Пожалуйста, заполните все поля!";
}
// Проверка на плохие слова. Если не мучают хулиганы, можно ее удалить.
$badwords = array('предложение', 'купить', 'раскрутка');
$banstring = ($message != str_ireplace($badwords,"XX",$message))? true: false; if ($banstring) {
$return_arr["frm_check"] = 'error';
$return_arr["msg"] = "Есть запрещенные слова";
}
if ($return_arr["frm_check"] != 'error') {
$subject = "From my-site.ru: $subject";
$message = "Сообщение от " .$name. "\n
Контакт: " .$email. "\n
Сообщение:\n" .$message;
$headers = "Content-Type: text/plain; charset=utf-8\r\n";
$headers .= "From: $from\r\n";
$headers .= "Reply-To: $from\r\n";
if (!mail($to, $subject, $message, $headers)) {
$return_arr["frm_check"] = 'error';
$return_arr["msg"] = "Сообщение не отправлено, ошибка почтового сервера!";
}
}
echo json_encode($return_arr);
}
?>
<script src="js/jquery-3.6.0.min.js"></script>
<script src="js/forms.js"></script>