Форум программистов, компьютерный форум, киберфорум
HTML, CSS
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 13.01.2014
Сообщений: 56

Проверка заполнения формы

10.04.2015, 13:23. Показов 2131. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не подскажите, что дописать надо чтобы не отправлялась форма с пустыми полями?
сайт http://49-x.ru
HTML5
1
2
3
4
5
6
7
8
9
10
<form class="sendMail" action="ajax.php">
                                <div class="form-group">
                                    <h3 class="zagolovok-2">Мы свяжемся с вами в течение 10 минут</h3>
                                </div>
                                <div class="form-group"><input type="text" class="form-control" id="name" placeholder="Ваше имя"></div>
                                <div class="form-group"><input type="text" class="form-control" id="phone" placeholder="Телефон"></div>
                                <div class="form-group"><input type="text" class="form-control" id="time" placeholder="Удобное время звонка"></div>
                                <button type="submit" class="btn btn-primary">Отправить заявку</button>
                                        
                            </form>
JavaScript:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$(function(){
                    $('.sendMail').on('submit', function(e){
                        e.preventDefault();
                        $action = $(this).attr('action');
                        $name = $('#name').val();
                        $phone = $('#phone').val();
                        $time = $('#time').val();
                        $.post($action, {name:$name,phone:$phone,time:$time}, function(data){
                            if(data.status == 'send'){
                                $('#sendSuccess').modal('show');
                            }else{
                                $('#sendDanger').modal('show');
                            }
                        }, 'json');
                    });
                });
Обработка AJAX
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
if(isset($_POST['name'])){
    $to = 'mechmedia@yandex.ru';
    $from = 'zakaz@49-x.ru'; 
    $subject = 'Новое сообщение с сайта 49-x.ru'; 
    $subject = '=?utf-8?b?'. base64_encode($subject) .'?='; 
    $headers = "Content-type: text/html; charset=\"utf-8\"\r\n"; 
    $headers .= "From: <". $from .">\r\n"; 
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Date: ". date('D, d M Y h:i:s O') ."\r\n"; 
    $message = "<h3>Новое сообщение с сайта 49-x.ru</h3>\n 
                <h2>Имя пользователя: ". $_POST['name'] ."</h2>\n 
                <h2>Телефон пользователя: ". $_POST['phone'] ."</h2>\n 
                <h2>Комментарий пользователя: ". $_POST['time'] ."</h2>\n 
                <h3>Письмо сформировано автоматически, отвечать на него не нужно.</h3>\n 
                <h6>С Уважением <a href='http://vk.com/mechmedia' target='_blank'>Тимур В.</a>.</h6>\n";
    if(mail($to, $subject, $message, $headers, $from)){
        echo json_encode(array('status'=>'send'));
    }else{
        echo json_encode(array('status'=>'noSend'));
    }
}else{
    echo 'Прямой вызов запрещён!!!';
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.04.2015, 13:23
Ответы с готовыми решениями:

Изменение картинки в блоке после заполнения формы
One more problem, guys. Нужно сделать так, чтобы после заполнения формы у меня в определённом блоке менялась картинка. Напишите просто...

Проверка заполнения формы
Здравствуйте ! Есть форма. с радио кнопками. Как сделать чтобы скрипт проверял, нажаты ли все кнопки (одна из пяти), и выдавал...

Проверка заполнения формы
не получается это 1.Пароль от 3 до 8 цифр что бы был 2.Проверка на пустоту 3.Проверка чекед на радио баттон 4.Совпадение паролей...

13
53 / 53 / 22
Регистрация: 31.03.2015
Сообщений: 268
10.04.2015, 14:31
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
if(!$_POST["name"] || !$_POST["phone"] || !$_POST["time"]) // Если какие-либо поля пустые
{
echo 'Необходимо заполнить все поля!'; // Выводим предупреждение
}
else // Иначе
{
    $to = 'mechmedia@yandex.ru';
    $from = 'zakaz@49-x.ru'; 
    $subject = 'Новое сообщение с сайта 49-x.ru'; 
    $subject = '=?utf-8?b?'. base64_encode($subject) .'?='; 
    $headers = "Content-type: text/html; charset=\"utf-8\"\r\n"; 
    $headers .= "From: <". $from .">\r\n"; 
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Date: ". date('D, d M Y h:i:s O') ."\r\n"; 
    $message = "<h3>Новое сообщение с сайта 49-x.ru</h3>\n 
                <h2>Имя пользователя: ". $_POST['name'] ."</h2>\n 
                <h2>Телефон пользователя: ". $_POST['phone'] ."</h2>\n 
                <h2>Комментарий пользователя: ". $_POST['time'] ."</h2>\n 
                <h3>Письмо сформировано автоматически, отвечать на него не нужно.</h3>\n 
                <h6>С Уважением <a href='http://vk.com/mechmedia' target='_blank'>Тимур В.</a>.</h6>\n";
    if(mail($to, $subject, $message, $headers, $from)){ // Отправляем сообщение
        echo json_encode(array('status'=>'send'));
    }else{
        echo json_encode(array('status'=>'noSend'));
    }
}else{
    echo 'Прямой вызов запрещён!!!';
}
Если вы это имели ввиду.
0
0 / 0 / 0
Регистрация: 13.01.2014
Сообщений: 56
10.04.2015, 14:37  [ТС]
Я не сильно разбираюсь в php, это дописать нужно ниже моего кода или вместо него?
А вообще хотел бы это сделать через JS, чтобы выводилось что-то типа "Заполните поле"
0
53 / 53 / 22
Регистрация: 31.03.2015
Сообщений: 268
10.04.2015, 14:57
Тимуркин85, это код для ajax.php.
С JavaScript я знаком плохо. Могу предложить вариант с переадресацией на страницу с формой, в url передать ошибку и перед формой ввести её обработку.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
if (!$_POST["name"]) // Если не введено имя
{
header ('Location: index.php?error=name');
}
else if (!$_POST["phone"]) // Если не введён телефон
{
header ('Location: index.php?error=phone');
}
else if (!$_POST["time"]) // Если не введено время
{
header ('Location: index.php?error=time');
}
else // Если всё введено
{
    $to = 'mechmedia@yandex.ru';
    $from = 'zakaz@49-x.ru'; 
    $subject = 'Новое сообщение с сайта 49-x.ru'; 
    $subject = '=?utf-8?b?'. base64_encode($subject) .'?='; 
    $headers = "Content-type: text/html; charset=\"utf-8\"\r\n"; 
    $headers .= "From: <". $from .">\r\n"; 
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Date: ". date('D, d M Y h:i:s O') ."\r\n"; 
    $message = "<h3>Новое сообщение с сайта 49-x.ru</h3>\n 
                <h2>Имя пользователя: ". $_POST['name'] ."</h2>\n 
                <h2>Телефон пользователя: ". $_POST['phone'] ."</h2>\n 
                <h2>Комментарий пользователя: ". $_POST['time'] ."</h2>\n 
                <h3>Письмо сформировано автоматически, отвечать на него не нужно.</h3>\n 
                <h6>С Уважением <a href='http://vk.com/mechmedia' target='_blank'>Тимур В.</a>.</h6>\n";
    if(mail($to, $subject, $message, $headers, $from)){
        echo json_encode(array('status'=>'send'));
    }else{
        echo json_encode(array('status'=>'noSend'));
    }
}else{
    echo 'Прямой вызов запрещён!!!';
}
index.php заменить на название файла с формой.
Код для файла с формой напишу в следующем сообщении.
0
Эксперт HTML/CSS
 Аватар для Shakalaka
653 / 556 / 322
Регистрация: 27.01.2015
Сообщений: 1,374
10.04.2015, 15:01
Проверка правильности заполнения формы на js - это всего "приятные плюшки" которые избавят от лишних запросов на сервер. Любой скрипт на js можно отключить и отправить все что угодно. Необходимо также проверять на сервере.
JavaScript
1
2
3
4
5
6
7
8
$name = $('#name').val().trim();
$phone = $('#phone').val().trim();
$time = $('#time').val().trim();
if($name && $phone && $time){
    //шлем запрос
}
else
    alert("заполните все поля!");
0
53 / 53 / 22
Регистрация: 31.03.2015
Сообщений: 268
10.04.2015, 15:06
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
switch ($_GET["error"]) {
case "name":
$error="Введите имя";
break;
case "phone":
$error="Введите телефон";
break;
case "time":
$error="Введите время";
break;
}
echo $error;
// Сюда вставляем форму
?>
0
0 / 0 / 0
Регистрация: 13.01.2014
Сообщений: 56
10.04.2015, 15:13  [ТС]
Спасибо! попробую через JS!

Добавлено через 1 минуту
Shakalaka, А можете расписать пожалуйста, как правильно дописать в JS это?
0
Эксперт HTML/CSS
 Аватар для Shakalaka
653 / 556 / 322
Регистрация: 27.01.2015
Сообщений: 1,374
10.04.2015, 16:03
Лучший ответ Сообщение было отмечено Тимуркин85 как решение

Решение

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$('.sendMail').on('submit', function(e){
                        e.preventDefault();
                        $action = $(this).attr('action');
                        $name = $('#name').val().trim();
                        $phone = $('#phone').val().trim();
                        $time = $('#time').val().trim();
                        if($name && $phone && $time){
                        $.post($action, {name:$name,phone:$phone,time:$time}, function(data){
                            if(data.status == 'send'){
                                $('#sendSuccess').modal('show');
                            }else{
                                $('#sendDanger').modal('show');
                            }
                        }, 'json');
                        }
                        else alert("заполните все поля!");
                    });
                });
Еще, для удобства полльзователя, можно подсвечивать те поля, которые не заполнены
1
0 / 0 / 0
Регистрация: 13.01.2014
Сообщений: 56
10.04.2015, 16:12  [ТС]
Shakalaka, Супер, все работает теперь!))) Спасибки!

Добавлено через 1 минуту
Shakalaka, а как подсветку полей сделать тогда? вот как здесь например
http://grusha2014.ru/partner/
(знакомый делал мне)
0
Эксперт HTML/CSS
 Аватар для Shakalaka
653 / 556 / 322
Регистрация: 27.01.2015
Сообщений: 1,374
10.04.2015, 17:00
Можно как-то так
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
$(function(){
 
            $('.sendMail').on('submit', function(e){
                        e.preventDefault();
                        $action = $(this).attr('action');
                        $('.sendMail input[type="text"]').each(function(){
                            if(!this.value){
                                this.className = 'invalid';
                                console.log(this.nextSibling);
                                if(!this.nextSibling){
                                var div = document.createElement('div');
                                div.innerHTML='enter field';
                                div.className = 'error_message'
                                this.parentNode.appendChild(div);
                                }
                            }
                            else if(this.nextSibling){
                                this.nextSibling.parentNode.removeChild(this.nextSibling);
                            }
                        })
                        $name = $('#name').val().trim();
                        $phone = $('#phone').val().trim();
                        $time = $('#time').val().trim();
                        if($name && $phone && $time){
                            $.post($action, {name:$name,phone:$phone,time:$time}, function(data){
                                if(data.status == 'send'){
                                    $('#sendSuccess').modal('show');
                                }else{
                                    $('#sendDanger').modal('show');
                                }
                            }, 'json');
                            }
                        else alert("enter all fields!");
                        });
                    });
0
0 / 0 / 0
Регистрация: 13.01.2014
Сообщений: 56
10.04.2015, 17:04  [ТС]
Shakalaka, Да работает! а можно теперь окошко от браузера убрать "Заполните все поля", чтобы только под полями сообщение выводилось?
0
Эксперт HTML/CSS
 Аватар для Shakalaka
653 / 556 / 322
Регистрация: 27.01.2015
Сообщений: 1,374
10.04.2015, 17:19
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
$(function(){
 
            $('.sendMail').on('submit', function(e){
                        e.preventDefault();
                        $action = $(this).attr('action');
                        $('.sendMail input[type="text"]').each(function(){
                            if(!this.value){
                                this.className = 'invalid';
                                console.log(this.nextSibling);
                                if(!this.nextSibling){
                                var div = document.createElement('div');
                                div.innerHTML='enter field';
                                div.className = 'error_message'
                                this.parentNode.appendChild(div);
                                }
                            }
                            else if(this.nextSibling){
                                this.nextSibling.parentNode.removeChild(this.nextSibling);
                            }
                        })
                        $name = $('#name').val().trim();
                        $phone = $('#phone').val().trim();
                        $time = $('#time').val().trim();
                        if($name && $phone && $time){
                            $.post($action, {name:$name,phone:$phone,time:$time}, function(data){
                                if(data.status == 'send'){
                                    $('#sendSuccess').modal('show');
                                }else{
                                    $('#sendDanger').modal('show');
                                }
                            }, 'json');
                            }
                        
                        });
                    });
0
0 / 0 / 0
Регистрация: 13.01.2014
Сообщений: 56
10.04.2015, 18:37  [ТС]
Shakalaka, Ага есть!) Вы извините за то что напрягаю так) не спец просто)..
А можно сделать чтобы стили полей не слетали когда сообщение выводится что не заполнены поля?)
0
Эксперт HTML/CSS
 Аватар для Shakalaka
653 / 556 / 322
Регистрация: 27.01.2015
Сообщений: 1,374
10.04.2015, 18:51
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
$(function(){
 
            $('.sendMail').on('submit', function(e){
                        e.preventDefault();
                        $action = $(this).attr('action');
                        $('.sendMail input[type="text"]').each(function(){
                            if(!this.value){
                                this.className = this.className + ' invalid';
                                console.log(this.nextSibling);
                                if(!this.nextSibling){
                                var div = document.createElement('div');
                                div.innerHTML='enter field';
                                div.className = div.className + ' error_message';
                                this.parentNode.appendChild(div);
                                }
                            }
                            else if(this.nextSibling){
                                this.nextSibling.parentNode.removeChild(this.nextSibling);
                            }
                        })
                        $name = $('#name').val().trim();
                        $phone = $('#phone').val().trim();
                        $time = $('#time').val().trim();
                        if($name && $phone && $time){
                            $.post($action, {name:$name,phone:$phone,time:$time}, function(data){
                                if(data.status == 'send'){
                                    $('#sendSuccess').modal('show');
                                }else{
                                    $('#sendDanger').modal('show');
                                }
                            }, 'json');
                            }
                        
                        });
                    });
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.04.2015, 18:51
Помогаю со студенческими работами здесь

Проверка заполнения формы
Подскажите пожалуйста, как осуществить проверку заполнения текстовой формы? Мне нужно чтобы при введении в textbox текст на английском...

Проверка заполнения полей формы
Здравствуйте! Подскажите пожалуйста, как организовать проверку всех полей формы на заполненность при нажатии на кнопку перехода к следующей...

Проверка заполнения подчиненной формы
Здравствуйте. Возник такой вопрос по Аксесс. Есть форма с именем, например, MyFormи на этой форме есть подчиненная форма SubForm. На...

Проверка заполнения текстовой формы
Здравствуйте программисты, нужна помощь. Как реализовать проверку заполнения текстовой формы по шаблону? Шаблон: класс, Фамилия Имя ...

Проверка формы на предмет её заполнения
привет всем. у меня возникла проблема. мне нужно проверить форму на предмет её заполнения и получить дату заполнения. функция...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в конфигурации КА2. Данные берутся из регистра сведений, по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru