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 ответ от сервера, там можно более интересные консруткции возвращать.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы