JSFiddle - React, Tailwind, and code Playground
HTML
<div id="qbootstrap-started" class="qbootstrap-bg" data-section="rsvp" data-stellar-background-ratio="0.5">
<div class="overlay"></div>
<div class="container">
<div class="row animate-box">
<div class="col-md-8 col-md-offset-2">
<div class="col-md-12 text-center section-heading svg-sm colored">
<img src="images/flaticon/svg/005-two.svg" class="svg" alt="">
<h2>Книга пожеланий</h2>
<div class="row">
<div class="col-md-10 col-md-offset-1 subtext">
<h3>Если хотите, вы можете отправить свои пожелания.</h3>
</div>
</div>
</div>
</div>
</div>
<div class="row animate-box">
<div class="col-md-10 col-md-offset-1">
<form class="form-inline">
<div class="col-md-8 col-sm-8">
<div class="form-group">
<label for="text" class="sr-only">Ваше пожелание</label>
<textarea class="form-control" style="height: 117px;" id="text" cols="100" placeholder="Ваше пожелание"></textarea>
</div>
</div>
<div class="col-md-4 col-sm-4">
<div class="form-group">
<label for="name" class="sr-only">Ваше имя</label>
<input type="text" class="form-control" id="name" placeholder="Ваше имя"><br>
</div>
</div>
<div class="col-md-4 col-sm-4">
<button type="submit" class="btn btn-default btn-block" id="btn_submit">Отправить</button>
</div>
</form>
</div>
</div>
</div>
</div>
CSS
<?php
$msg_box = ""; // в этой переменной будем хранить сообщения формы
$errors = array(); // контейнер для ошибок
// проверяем корректность полей
if($_POST['text'] == "") $errors[] = "Поле 'Ваше пожелание' не заполнено!";
if($_POST['name'] == "") $errors[] = "Поле 'Ваше имя' не заполнено!";
// если форма без ошибок
if(empty($errors)){
// собираем данные из формы
$message = "Имя: " . $_POST['name'] . "<br/>";
$message .= "Текст пожелания: " . $_POST['text'];
send_mail($message); // отправим письмо
// выведем сообщение об успехе
$msg_box = "<span style='color: green;'>Сообщение успешно отправлено. Спасибо вам!</span>";
}else{
// если были ошибки, то выводим их
$msg_box = "";
foreach($errors as $one_error){
$msg_box .= "<span style='color: red;'>$one_error</span><br/>";
}
}
// делаем ответ на клиентскую часть в формате JSON
echo json_encode(array(
'result' => $msg_box
));
// функция отправки письма
function send_mail($message){
// почта, на которую придет письмо
$mail_to = "annaivtv@mail.ru";
// тема письма
$subject = "Письмо-пожелание";
// заголовок письма
$headers= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=utf-8\r\n"; // кодировка письма
$headers .= "From: Наша свадьба\r\n"; // от кого письмо
// отправляем письмо
mail($mail_to, $subject, $message, $headers);
}
?>
JavaScript
// после footer, но еще в body!!!!
<script src="js/jquery.min.js"></script>
<script>
$(document).ready(function(){
$('#btn_submit').click(function(){
// собираем данные с формы
var text = $('#text').val();
var name = $('#name').val();
// отправляем данные
$.ajax({
url: "active.php", // куда отправляем
type: "post", // метод передачи
dataType: "json", // тип передачи данных
data: { // что отправляем
"text": text,
"name": name
},
// после получения ответа сервера
success: function(data){
$('.messages').html(data.result); // выводим ответ сервера
}
});
});
});
</script>