@losso_lapolososso

Как вывести ошибку, если поля не заполнены с помощью ajax и php?

Вот ajax
$('#btn_submit').click(function(){
                // собираем данные с формы
                var user_name    = $('#user_name').val();
                var user_email   = $('#user_email').val();
                var user_phone = $('#user_phone').val();
                var user_town = $('#user_town').val();
                // отправляем данные
                $.ajax({
                    url: "action.php", // куда отправляем
                    type: "post", // метод передачи
                    dataType: "json", // тип передачи данных
                    data: { // что отправляем
                        "user_name":    user_name,
                        "user_email":   user_email,
                        "user_phone":   user_phone,
                        "user_town":    user_town 
                    },
                    // после получения ответа сервера
                    success: function(data){
                        if($('#user_name').val() != null){
                            $('#thank').css({'display': 'block'});
                            $('#my_modal').css({'display': 'none'});
                        }
                        else{
                            alert("поле имя не не заполнено");
                        }
                    }
                });
            });

Вот php
<?php
    $msg_box = ""; // в этой переменной будем хранить сообщения формы
    $errors = array(); // контейнер для ошибок
    // проверяем корректность полей
    if($_POST['user_name'] == "")    $errors[] = "Поле 'Ваше имя' не заполнено!";
    if($_POST['user_email'] == "")   $errors[] = "Поле 'Ваш e-mail' не заполнено!";
    if($_POST['user_phone'] == "") $errors[] = "Поле 'Ваш номер телефона' не заполнено";
    if($_POST['user_town'] == "") $errors[] = "Поле 'Ваш город' не заполнено";
 
    // если форма без ошибок
    if(empty($errors)){     
        // собираем данные из формы
        $message  = "Имя пользователя: " . $_POST['user_name'] . "<br/>";
        $message .= "E-mail пользователя: " . $_POST['user_email'] . "<br/>";
        $message .= "Телефон пользователя: " . $_POST['user_phone'] . "<br/>";
        $message .= "Город пользователя: " . $_POST['user_town'] . "<br/>";
        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 = "d.bagration@advise.ru"; 
        // тема письма
        $subject = "Письмо с обратной связи";
         
        // заголовок письма
        $headers= "MIME-Version: 1.0\r\n";
        $headers .= "Content-type: text/html; charset=utf-8\r\n"; // кодировка письма
        $headers .= "From: Тестовое письмо <no-reply@test.com>\r\n"; // от кого письмо
         
        // отправляем письмо 
        mail($mail_to, $subject, $message, $headers);
    }
     
?>
  • Вопрос задан
  • 443 просмотра
Решения вопроса 1
@VitiaKotik
Если есть ошибки - верните ответ мол ошибки есть и в клиенте проверяйте какой ответ от сервера.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
MichaelAniskin
@MichaelAniskin
Немного в себе
я использовал для этого jquery validation.js
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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