oudkood
@oudkood
Дайджест специалист

Нужно вызвать окно после успешной отправки, но как?

Вот такой обработчик

$(document).on('submit', '.form', function(event){
    event.preventDefault();

    var form_data = $(this).serialize();
    var form_current = $(this);
    var form_target = 'ORDER';

    if (validateForm(form_current))
    {
      $('.i-loader').show();

      $.ajax({
        type: 'POST',
        url: 'php/order.php',
        data: form_data,
        success: function(response) {

          $('.i-loader').hide();

          if (response == 'sended')
          {
            /* Sending target to Yandex Metrika */
            try {
              yaCounter50890646.reachGoal(form_target);
            } catch(e) { }

            /* Order done */
            $('#success-form').iziModal('open');

            // Close and clear all forms
            $('.modal_form').each(function(index){
              $(this).iziModal('close');

              $(this).find('.form__input input').val('');
            });
          }
          else
          {
            /* Something wrong */
            $('#alert-form').iziModal('open');
          }
        }
      });
    }
  });


Вот такая отправка

?
        $to = "oudkood@gmail.com";
    }
        $subject = 'Новое действие';
        $message = '
                <html>
                    <head>
                        <title>'.$subject.'</title>
                    </head>
                    <body>
                        <p>Имя: '.$_POST['name'].'</p>
                        <p>Телефон: '.$_POST['phone'].'</p>
                        <p>Откуда - '.$_POST['source'].'</p>    
                        <p>Форма кухни: '.$_POST['old'].'</p>
                        <p>Размеры кухни: Сторона А '.$_POST['aside'].' Сторона В '.$_POST['bside'].' Сторона С '.$_POST['cside'].'</p>
                        <p>Стиль интерьера: '.$_POST['style'].'</p>   
                        <p>Фасад: '.$_POST['fasad'].'</p> 
                        <p>Подарок: '.$_POST['present'].'</p>                              
                    </body>
                </html>'; //Текст сообщения
        $headers  = "Content-type: text/html; charset=utf-8 \r\n";
        $headers .= "From: Отправитель <mail@google.ru>\r\n";
        mail($to, $subject, $message, $headers);
?>


Не срабатывает отправка 500 ошибку в консоли показывает. Подскажите в чем проблема.

Нужно чтобы после успешной отправка == "sended" отображалось это

/* Order done */
            $('#success-form').iziModal('open');
  • Вопрос задан
  • 118 просмотров
Решения вопроса 1
kawabanga
@kawabanga
А вы ничего не возвращаете ведь. mail() возвращает функцию - отправлено или нет.

Замените
mail($to, $subject, $message, $headers);
на
echo mail($to, $subject, $message, $headers) ? 'sended' : 'fail';


И потом почитайте про JSON ответ от сервера, там можно более интересные консруткции возвращать.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы