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

222
06 сентября 2018, 23:30

Попытаюсь изложить максимально понятнее, чем в заголовке) В общем подключил самый простой обработчик на сайт, но возникли некоторые трудности. Когда я отправляю данные с формы - она просто исчезает, при том моменте, что данные доходят до адресата.

Как сделать так, что бы код формы не удалялся после отправки, а поля были заблокированы от повторного ввода после первой успешной попытки?

$(document).ready(function () { 
            $("form").submit(function () { 
                var formID = $(this).attr('id'); 
                // Добавление решётки к имени ID 
                var formNm = $('#' + formID); 
                $.ajax({ 
                    type: "POST", 
                    url: 'mail.php', 
                    data: formNm.serialize(), 
                    success: function (data) { 
                        // Вывод текста результата отправки 
                        $(formNm).html(data);  
                    }, 
                    error: function (jqXHR, text, error) { 
                        // Вывод текста ошибки отправки 
                        $(formNm).html(error);          
                    } 
                }); 
                return false; 
            }); 
});
<form id="001"> 
                            <input type="text" name="name" required title="Введите Ваше имя" placeholder="имя"> 
                            <input type="text" name="phone" pattern="^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$" required title="Введите номер телефона в формате +7 (999) 999-99-99" placeholder="телефон"> 
                            <button id="headbutton">Заказать дизайн</button> 
</form>

    <?php 
$form_subject = 'Заявка с сайта'; 
$admin_email = 'info@mail.ru'; 
$_POST["fields"]["Телефон"]; 
$_POST["fields"]["Имя"]; 
$message = 'Телефон:'.$_POST["fields"]["Телефон"].'<br>Имя: '.$_POST["fields"]["Имя"]; 
function adopt($text) { 
  return '=?UTF-8?B?'.Base64_encode($text).'?='; 
} 
 
 
$headers  = "Content-type: text/html; charset=utf-8 \r\n"; //Кодировка письма 
$headers .= "From: Отправитель <from@site.ru>\r\n"; //Наименование и почта отправителя 
 
 
mail($admin_email, adopt($form_subject), $message, $headers ); 
echo '{"msg":"ok","code":200}';

Answer 1

в коде успешного выполнения запроса замени строку $(formNm).html(data); на $('input').attr('disabled',true);

READ ALSO
Рандомная замена

Рандомная замена

Массив $arrtxt сравнивается по значению с массивом $new по ключу который также содержит в себе массив с ключами и после рандомно выводится рядом...

253
Отправка смс сайта на почту используя Codeigniter 3

Отправка смс сайта на почту используя Codeigniter 3

Использую codeigniter 3И мне нужно сделать отправку с формы смс на почту @gmail

198
php преобразование чисел со степенью

php преобразование чисел со степенью

Есть числа со степенью в таком формате 2401E-5 Как их можно преобразовать в десятичные числа если степени будут постоянно меняться?

208
Несколько подключений к БД в RedBeanPHP

Несколько подключений к БД в RedBeanPHP

Возможно ли в RedBeanPHP установить несколько подключений к БД? Пример кода:

252