Вывод сообщения после отправки формы

Alexeina66

Мой дом здесь!
Регистрация
26 Авг 2013
Сообщения
426
Реакции
444
Всем привет!
Подскажите как вывести сообщение сразу после отправки формы в
HTML:
 <p class="msgs"></p>

HTML
HTML:
<form action="mail.php" method="post">
                    <input name="buttoninfo" type="hidden" value="Заказать">
                    <div class="input-block"><div class="input-img input-img1"></div><input name="name" class="required" type="text" placeholder="Введите Ваше имя"></div>
                    <div class="input-block"><div class="input-img input-img2"></div><input name="phone" class="phoneform required" type="text" placeholder="Введите Ваш телефон"></div>
                
                    <button class="btn">Заказать</button>
                    <div class="polytics-text">Я согласен на обработку моих персональных данных</div>
                    <p class="msgs"></p>
                </form>

JS
Код:
$('form').each(function() {
    var $form = $(this);
    $form.validate({
      submitHandler: function() {
        $.ajax({
          type: $form.attr('method'),
         url: $form.attr('action'),
        data: $form.serialize()
      
        }).done(function() {
      
    
        }).fail(function() {
          location.href = "#mail-fail";
        });
        $form.find("input[type='text']").val('');
        return false;
      }
    });
  });

PHP
PHP:
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
  if (!empty($_POST['name']) && !empty($_POST['phone'])){
      if (isset($_POST['name'])) {
          if (!empty($_POST['name'])){
          $uname = strip_tags($_POST['name']) . "<br>";
          $unameFieldset = "<b>Имя:</b>";
         }
    }
    if (isset($_POST['phone'])) {
        if (!empty($_POST['phone'])){
          $uphone = strip_tags($_POST['phone']) . "<br>";
          $uphoneFieldset = "<b>Телефон:</b>";
        }
    }
    if (isset($_POST['formInfo'])) {
        if (!empty($_POST['formInfo'])){
          $formInfo = strip_tags($_POST['formInfo']);
          $formInfoFieldset = "<b>Тема:</b>";
        }
    }

    $to = "1@yandex.ru";
    $sendfrom = "info@1.loc";
    $headers  = "From: " . strip_tags($sendfrom) . "\r\n";
    $headers .= "Reply-To: ". strip_tags($sendfrom) . "\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html;charset=utf-8 \r\n";
    $headers .= "Content-Transfer-Encoding: 8bit \r\n";
    $subject = "$formInfo";
    $message = "$unameFieldset $uname
                $uphoneFieldset $uphone
                $formInfoFieldset $formInfo";

    $send = mail ($to, $subject, $message, $headers);
        if ($send == 'true') {
            echo '<p class="success">Спасибо за отправку вашего сообщения!</p>';
        } else {
          echo '<p class="fail"><b>Ошибка. Сообщение не отправлено!</b></p>';
        }
  } else {
      echo '<p class="fail">Ошибка. Вы заполнили не все обязательные поля!</p>';
  }
} else {

}

Благодарю за помощь!
 
Последнее редактирование:
в твоем js файле
$('form').each(function() {
var $form = $(this);
$form.validate({
submitHandler: function() {
$.ajax({
type: $form.attr('method'),
url: $form.attr('action'),
data: $form.serialize()

}).done(function() {


}).fail(function() {
location.href = "#mail-fail";
});
$form.find("input[type='text']").val('');
return false;
}
});
});


В строке
.done(function() {

});


добавь это внутрь
alert('Спасибо за сообщение');


в итоге получится так



$('form').each(function() {
var $form = $(this);
$form.validate({
submitHandler: function() {
$.ajax({
type: $form.attr('method'),
url: $form.attr('action'),
data: $form.serialize()

}).done(function() {
alert('Спасибо за сообщение');

}).fail(function() {
location.href = "#mail-fail";
});
$form.find("input[type='text']").val('');
return false;
}
});
});


Спасибо за сообщение можешь менять на что хочешь.


если в класс выводить, то просто $('.msgs').text('Спасибо за сообщение'); вместо alert('Спасибо за сообщение');
 
Назад
Сверху