Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
27 / 0 / 1
Регистрация: 01.06.2017
Сообщений: 137

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

29.07.2019, 21:08. Показов 965. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть лендинг. Несколько форм обратной связи. Мне надо их реализовать по-разному (обязательно без перезагрузки страницы ajax).
1) есть кнопка, нажимаю на кнопку, появляется поп ап, отправляю, в этом же окне надпись благодарности
2) есть форма, заполняю, отправляю, появляется всплывающее окно благодарности

Понимаю что обработчики у форм разные..а ЧТО делать с файлом JS? Ведь он один,там прописана функция success function...а получается у меня эти функции должны быть разными....Как мне быть???
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.07.2019, 21:08
Ответы с готовыми решениями:

Как сделать проверку формы обратной связи на заполнение?
Как сделать скрипт, чтобы нельзя было отправить пустую форму обратной связи. Вот код формы: <form action=""...

Скрипт, отклоняющий повторное нажатие на кнопку обратной связи на сайте
Здравствуйте всем! Если не трудно помогите написать скрипт на HTML , пролазил весь интернет, не нашел что надо. Нужен код на HTML чтобы...

Валидация формы обратной связи
Доброго дня! Делаю форму обратной связи и столкнулся с 2 проблема: 1) валидация номера телефона case 'cont_phone': ...

4
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
29.07.2019, 21:44
IrenaIT, да хоть 25 форм с индивидуальной реализацией В каждой Вашей форме есть кнопочка, по которой легко дискриминировать что за форма будет обработана. Более того, и обработчик может быть один и ентот обработчик Вашему клиенскому скрипту может выдавать разные ответы.
Итак, в чем у Вас засада, в аяксе?
0
27 / 0 / 1
Регистрация: 01.06.2017
Сообщений: 137
30.07.2019, 09:31  [ТС]
Да,засада с файлами js....
ВОТ ДЛЯ 1-й ФОРМЫ:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$(document).ready(function(){
            $('#button_contacts').click(function(){
                var form_name   = $('#form_name').val();
                var form_email   = $('#form_email').val();
                var form_message = $('#form_message').val();
                $.ajax({
                    url: "post.php", 
                    type: "post", 
                    dataType: "json", 
                    data: { 
                        "form_name":   form_name,
                        "form_email":   form_email,
                        "form_message": form_message
                    },
                    success: function(data){
                        $('.messages').html(data.result); 
                    }
                });
            });
        });
php обработчик для 1-й формы
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
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
    $msg_box = ""; // в этой переменной будем хранить сообщения формы
    $errors = array(); // контейнер для ошибок
    // проверяем корректность полей
    if($_POST['form_email'] == "")   $errors[] = "Поле <span style='color: #666;'>Ваш e-mail</span> не заполнено";
    if($_POST['form_name'] == "")    $errors[] = "Поле <span style='color: #666;'>Ваше имя</span> не заполнено";
    if($_POST['form_message'] == "") $errors[] = "Поле <span style='color: #666;'>Текст сообщения</span> не заполнено";
 
    // если форма без ошибок
    if(empty($errors)){     
        // собираем данные из формы
        $message  = "Имя пользователя: " . $_POST['form_name'] . "<br/>";
        $message .= "E-mail пользователя: " . $_POST['form_email'] . "<br/><br/>";
        $message .= "Текст письма: " . $_POST['form_message'];      
        send_mail($message); // отправим письмо
        // выведем сообщение об успехе
        $msg_box = "<span style='color: green;font-size: 1.4em;'>Спасибо за обращение, сообщение успешно отправлено! <br/> В течении 24 часов я Вам отвечу!<br/></span><br/>";
 
    }else{
        // если были ошибки, то выводим их
        $msg_box = "";
        foreach($errors as $one_error){
            $msg_box .= "<style>.messages{margin-bottom: 20px;}</style><span style='color: red;font-size: 1.2em;'>$one_error</span><br/>";
        }
    }
 
    // делаем ответ на клиентскую часть в формате JSON
    echo json_encode(array(
        'result' => $msg_box
    ));
     
     
    // функция отправки письма
    function send_mail($message){
        // почта, на которую придет письмо
        $mail_to = "irenaterra16@gmail.com"; 
        // тема письма
        $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);
    }
     
?>
ВОТ ДЛЯ 2-Й ФОРМЫ
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
36
// Отправка заявки 
$(document).ready(function() {
    $('#form').submit(function() { // проверка на пустоту заполненных полей. Атрибут html5 — required не подходит (не поддерживается Safari)
        if (document.form.name.value == '' || document.form.phone.value == '' ) {
            valid = false;
            return valid;
        }
        $.ajax({
            type: "POST",
            url: "mail.php",
            data: $(this).serialize()
        }).done(function() {
            $('.js-overlay-thank-you').fadeIn();
            $(this).find('input').val('');
            $('#form').trigger('reset');
        });
        return false;
    });
});
 
// Закрыть попап «спасибо»
$('.js-close-thank-you').click(function() { // по клику на крестик
    $('.js-overlay-thank-you').fadeOut();
});
 
$(document).mouseup(function (e) { // по клику вне попапа
    var popup = $('.popup');
    if (e.target!=popup[0]&&popup.has(e.target).length === 0){
        $('.js-overlay-thank-you').fadeOut();
    }
});
 
// Маска ввода номера телефона (плагин maskedinput)
$(function($){
    $('[name="phone"]').mask("+7(999) 999-9999");
});
php обработчик для 2-й формы
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
 
$recepient = "irenaterra16@gmail.com";
$siteName = "Ajax-форма";
 
$name = trim($_POST["name"]);
$phone = trim($_POST["phone"]);
$message = "Имя: $name \nТелефон: $phone";
 
$pagetitle = "Заявка с сайта \"$siteName\"";
mail($recepient, $pagetitle, $message, "Content-type: text/plain; charset=\"utf-8\"\n From: $recepient");
 
?>

Что мне сделать с этими файлами js? ведь index.html считывает их оба...а как мне указать для какой формы какой файл js?? или мне их как-то в один слить, записать...обработчики то указаны конкретно какждый для своей формы....а здесь путаница получается...
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
30.07.2019, 20:00
Цитата Сообщение от IrenaIT Посмотреть сообщение
как мне указать для какой формы какой файл js??
никак. подключайте или два файла, или соедините в один, js сам разберется
ведь у вас же
Цитата Сообщение от IrenaIT Посмотреть сообщение
обработчики то указаны конкретно какждый для своей формы
0
27 / 0 / 1
Регистрация: 01.06.2017
Сообщений: 137
01.08.2019, 16:42  [ТС]
Здравствуйте!
сделала в одном файле..вот..НЕ работает(((((((((((

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
// Отправка заявки 
$(document).ready(function() {
    $('[name=phone1]').mask('+7 (999) 999-99-99');
    $('[name=phone2]').mask('+7 (999) 999-99-99');
    $('[name=phone3]').mask('+7 (999) 999-99-99');
    
    //Первая форма
    $('#form1').submit(function(){ // проверка на пустоту заполненных полей. Атрибут html5 — required не подходит (не поддерживается Safari)
        if (document.getElementById("phone1").value == '') {
            
            return false;
        }
        $.ajax({
            type: "POST",
            url: "form1.php",
            data: $(this).serialize()
        }).done(function() {
            $('#myModal').modal('show');
            //$(this).find('input').val('');
            $('[name="phone1"]').val('');
            
        });
        return false;
    });
    
    //Вторая форма
    $('#form2').submit(function(){ // проверка на пустоту заполненных полей. Атрибут html5 — required не подходит (не поддерживается Safari)
        if (document.getElementById("phone2").value == '') {
            
            return false;
        }
        $.ajax({
            type: "POST",
            url: "form2.php",
            data: $(this).serialize()
        }).done(function() {
            $('#myModal').modal('show');
            //$(this).find('input').val('');
            $('[name="phone2"]').val('');
            
        });
        return false;
    });
    
    //Третья форма
    $('#form3').submit(function(){ // проверка на пустоту заполненных полей. Атрибут html5 — required не подходит (не поддерживается Safari)
        if (document.getElementById("phone3").value == '' }) {
            
            return false;
        }
        $.ajax({
            type: "POST",
            url: "form3.php",
            data: $(this).serialize()
        }).done(function() {
            $('#myModal').modal('show');
            //$(this).find('input').val('');
            $('[name="text3"]').val('');
            $('[name="phone3"]').val('');
            
        });
        return false;
    });
});
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.08.2019, 16:42
Помогаю со студенческими работами здесь

Не работает скрипт формы обратной связи
Есть сайт, а на нем форма обратной связи. До написания стилей для формы, она работала, теперь же почему-то не работает JS скрипт. Код...

Модальное окно формы обратной связи
Доброго времени суток. Вот такая проблема есть. Есть форма отправки данных на e-mail. Расположена она в модальном окне на js. То есть...

Где бы взять javascript формы обратной связи
Где бы взять javascript формы обратной связи ? :) Может выложит кто ?

Вывод формы обратной связи в модальном окне
Привет. Помогите разобраться. Есть код который отвечает за открытие формы (как я понял за это отвечает: var djc_formslider = new...

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru