Задать вопрос
@pashabomber

Как после отправки данных из формы задать класс блоку?

Добрый день!

На сайте есть форма. Ее обрабатывает файл action.php

<?php
    $msg_box = ""; // в этой переменной будем хранить сообщения формы
    $errors = array(); // контейнер для ошибок
    // проверяем корректность полей
    if($_POST['user_name'] == "")    $errors[] = "Имя не указано!";
    if($_POST['mail'] == "")   $errors[] = "E-mail не указан!";
    if($_POST['phone'] == "") $errors[] = "Телефон' не указан!";
 
    // если форма без ошибок
    if(empty($errors)){     
        // собираем данные из формы
        $message  = "Имя пользователя: " . $_POST['user_name'] . "<br/>";
        $message .= "E-mail пользователя: " . $_POST['mail'] . "<br/>";
        $message .= "Телефон пользователя: " . $_POST['phone'];      
        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 = "pashabomber@yandex.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);
    }
?>


Я в php не разбираюсь. Суть в том, что в коде есть всплывающее окно с благодарностью. Вот мне надо, чтобы после успешной отправки данных этому блоку был задан новый класс (и этот блок отобразится).
  • Вопрос задан
  • 30 просмотров
Подписаться 1 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
xISRAPILx
@xISRAPILx
Кратко не получится
Выносите обработку формы в отдельный файл, отправляете туда POST запрос с данными в формате JSON, получаете эти данные на странице:
$request_body = file_get_contents('php://input');
//Валидация данных + json decode + обработка формы
//Делаете всё что нужно
//выводите ответ в формате json используя обычный echo
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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