Почему не отправляется форма?

На сайте , есть Форма отправки как в модальном окне, так и ниже в футере, если отправлять в футере - письмо доходя , в модальном окне - нет. Но даже в футере при отправке, неправильно обрабатывается файл ajax.
<div class="form">
                       <h2>Оставить заявку</h2>
                        <form id="formx" class="form-order">
                            <span>Ваше имя</span>
                            <input required="required" type="text" name="name" class="input-name" />
                            <span>Ваш телефон</span>
                            <input required="required" type="text" name="phone" class="input-phone"/>
                            <button type="submit" id="submit" value="Выпустить пар">Выпустить пар</button>
                            <div class="result"></div>
                        </form>
                    </div>


PHP:
<meta http-equiv="Content-Type" content="text/html charset=utf-8" />
<?php
if ($_POST['submit']) {
        $name = substr(htmlspecialchars(trim($_POST['name'])), 0, 200); 
        $phone =  substr(htmlspecialchars(trim($_POST['phone'])), 0, 50); 
        $from ='alexey_orlov_94@mail.ru';
  // $to - кому отправляем 
        $to = 'alexey_orlov_94@mail.ru'; 
        // функция, которая отправляет наше письмо
        mail("alexey_orlov_94@mail.ru'", "Перезвонить", " Имя : $_POST[name] \n Телефонный номер : $_POST[phone]");      
}

else{
$name = substr(htmlspecialchars(trim(array('name'))), 0, 200); 
$phone = substr(htmlspecialchars(trim(array('phone'))), 0, 50); 
// $to - кому отправляем 
$to = 'alexey_orlov_94@mail.ru'; 
// функция, которая отправляет наше письмо
mail("alexey_orlov_94@mail.ru", "Перезвонить", " Имя : $_POST[name] \n Телефонный номер : $_POST[phone]"); 

}
?>


AJAX:
$(function() {
    $('#formx').on('submit', function() {
        var empty = $(':text', this).filter(function() {
            return $.trim($(this).val()).length < 3;
        }).length;
        if (empty) {
            alert('В полях должно быть более 3 символов')
            return false;
        }
        $.ajax({
            type: 'POST',
            url: '../php/send.php',
            data: $(this).serialize(),
            success: function(data) {
                if (data) {
                    $('.result').text('Ваша заявка отправлена');
                }
            },
            error: function(xhr, str) {
                alert('Возникла ошибка: ' + xhr.responseCode);
            }
        });
    });
});
  • Вопрос задан
  • 365 просмотров
Пригласить эксперта
Ответы на вопрос 2
Settler1
@Settler1
Правильно написанный вопрос - половина ответа
У вас в коде при отправки вызывается функция call() корой нет, action указывает на void:
<form id="formx" action="javascript:void(null);" onsubmit="call()">

И это блокирует ваш обработчик на jquery, до него просто очередь не доходит.
Ответ написан
Комментировать
@AmadeyMinisol
full stack web-developer
попробуйте так:
$(function() {
    $('.form-order').on('submit', function() {
        var empty = $(':text', this).filter(function() {
            return $.trim($(this).val()).length < 3;
        }).length;
        if (empty) {
            alert('В полях должно быть более 3 символов')
            return false;
        }
        $.ajax({
            type: 'POST',
            url: '../php/send.php',
            data: $(this).serialize(),
            success: function(data) {
                if (data) {
                    $('.result').text('Ваша заявка отправлена');
                }
            },
            error: function(xhr, str) {
                alert('Возникла ошибка: ' + xhr.responseCode);
            }
        });
    });
});
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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