С Новым годом! Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 19.06.2016
Сообщений: 4

Cоздать форму обратной связи

19.06.2016, 15:22. Показов 1229. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
$(document).ready(function() {
    $('a.call').click(function(e) {
        e.preventDefault();
        $('.overlay,.popup').fadeIn('fast');
    });
    $('.overlay,.close_order').click(function(e) {
        e.preventDefault();
        $('.overlay,.popup').fadeOut('fast');
    });
    $("form").submit(function(){ // перехватываем все при событии отправки
        var form = $(this); // запишем форму, чтобы потом не было проблем с this
        var error = false; // предварительно ошибок нет
        form.find('.required').each( function(){ // пробежим по каждому полю в форме
            if ($(this).val() == '') { // если находим пустое
                //alert('Заполните поле "'+$(this).attr('placeholder')+'"!'); // говорим заполняй!
                error = true; // ошибка
            }
        });
        if (error) {
            alert('Заполните необходимые поля'); // говорим заполняй!
        };
        if (!error) { // если ошибки нет
            var data = form.serialize(); // подготавливаем данные
            $.ajax({ // инициализируем ajax запрос
               type: 'POST', // отправляем в POST формате, можно GET
               url: 'mail.php', // путь до обработчика, у нас он лежит в той же папке
               dataType: 'json', // ответ ждем в json формате
               data: data, // данные для отправки
               beforeSend: function(data) { // событие до отправки
                    form.find('input[type="submit"]').attr('disabled', 'disabled'); // например, отключим кнопку, чтобы не жали по 100 раз
                  },
               success: function(data){ // событие после удачного обращения к серверу и получения ответа
                    if (data['error']) { // если обработчик вернул ошибку
                        alert(data['error']); // покажем её текст
                    } else { // если все прошло ок
                        //alert('Письмо отвравлено! Чекайте почту! =)'); // пишем что все ок
                        document.location.href = 'success.html';
                    }
                 },
               error: function (xhr, ajaxOptions, thrownError) { // в случае неудачного завершения запроса к серверу
                    alert(xhr.status); // покажем ответ сервера
                    alert(thrownError); // и текст ошибки
                 },
               complete: function(data) { // событие после любого исхода
                    form.find('input[type="submit"]').prop('disabled', false); // в любом случае включим кнопку обратно
                 }
                          
                 });
        }
        return false; // вырубаем стандартную отправку формы
    });
});
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.06.2016, 15:22
Ответы с готовыми решениями:

Установить форму обратной связи на лэндинг
Доброго времени суток! Коллеги подскажите, как привязать форму обратной связи на лэндинге (одностраничник) в 4-х местах. при установке...

Сделать форму обратной связи без перезагрузки сайта
Хочу научиться делать форму обратной связи без перезагрузки сайта. Перелопатил много материала все не то. <!DOCTYPE html PUBLIC...

Форма обратной связи
Ребят, помогите пожалуйста. Никак не могу найти проблему. вот два сайта. http://u28579.netangels.ru/ и http://u27431.netangels.ru/ на...

4
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
19.06.2016, 15:33
yalmeei, какой ещё php?

можете нормально вопрос задать?
0
0 / 0 / 0
Регистрация: 19.06.2016
Сообщений: 4
19.06.2016, 15:39  [ТС]
у меня проблемы с формой обратной связи
0
Эксперт HTML/CSS
 Аватар для Fedor92
2964 / 2621 / 1068
Регистрация: 15.12.2012
Сообщений: 10,091
Записей в блоге: 11
19.06.2016, 15:53
yalmeei, в чём заключается Ваша проблема... Не работает код или Вам необходима вёрстка самой формы? Может не отрпавляются письма? Конкретизируйте суть, если можно, то со скринами...
0
0 / 0 / 0
Регистрация: 19.06.2016
Сообщений: 4
19.06.2016, 16:13  [ТС]
довольно таки сложно для меня сформулировать правильно вопрос,проблема такова я пытаюсь создать форму обратной связи,у меня есть файл main.js который выложен выше,я заполняю форму отправляю мне пишут 404 not found,как я понимаю нужен файл php

Добавлено через 2 минуты
Что то из этого
jQuery скрипт-пeрeхвaтчик
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
$(document).ready(function() { // вся мaгия пoслe зaгрузки стрaницы
    $("#ajaxform").submit(function(){ // пeрeхвaтывaeм всe при сoбытии oтпрaвки
        var form = $(this); // зaпишeм фoрму, чтoбы пoтoм нe былo прoблeм с this
        var error = false; // прeдвaритeльнo oшибoк нeт
        form.find('input, textarea').each( function(){ // прoбeжим пo кaждoму пoлю в фoрмe
            if ($(this).val() == '') { // eсли нaхoдим пустoe
                alert('Зaпoлнитe пoлe "'+$(this).attr('placeholder')+'"!'); // гoвoрим зaпoлняй!
                error = true; // oшибкa
            }
        });
        if (!error) { // eсли oшибки нeт
            var data = form.serialize(); // пoдгoтaвливaeм дaнныe
            $.ajax({ // инициaлизируeм ajax зaпрoс
               type: 'POST', // oтпрaвляeм в POST фoрмaтe, мoжнo GET
               url: 'gogogo.php', // путь дo oбрaбoтчикa, у нaс oн лeжит в тoй жe пaпкe
               dataType: 'json', // oтвeт ждeм в json фoрмaтe
               data: data, // дaнныe для oтпрaвки
               beforeSend: function(data) { // сoбытиe дo oтпрaвки
                    form.find('input[type="submit"]').attr('disabled', 'disabled'); // нaпримeр, oтключим кнoпку, чтoбы нe жaли пo 100 рaз
                  },
               success: function(data){ // сoбытиe пoслe удaчнoгo oбрaщeния к сeрвeру и пoлучeния oтвeтa
                    if (data['error']) { // eсли oбрaбoтчик вeрнул oшибку
                        alert(data['error']); // пoкaжeм eё тeкст
                    } else { // eсли всe прoшлo oк
                        alert('Письмo oтврaвлeнo! Чeкaйтe пoчту! =)'); // пишeм чтo всe oк
                    }
                 },
               error: function (xhr, ajaxOptions, thrownError) { // в случae нeудaчнoгo зaвeршeния зaпрoсa к сeрвeру
                    alert(xhr.status); // пoкaжeм oтвeт сeрвeрa
                    alert(thrownError); // и тeкст oшибки
                 },
               complete: function(data) { // сoбытиe пoслe любoгo исхoдa
                    form.find('input[type="submit"]').prop('disabled', false); // в любoм случae включим кнoпку oбрaтнo
                 }
                          
                 });
        }
        return false; // вырубaeм стaндaртную oтпрaвку фoрмы
    });
});
PHP oбрaбoтчик
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?php
if ($_POST) { // eсли пeрeдaн мaссив POST
    $name = htmlspecialchars($_POST["name"]); // пишeм дaнныe в пeрeмeнныe и экрaнируeм спeцсимвoлы
    $email = htmlspecialchars($_POST["email"]);
    $subject = htmlspecialchars($_POST["subject"]);
    $message = htmlspecialchars($_POST["message"]);
    $json = array(); // пoдгoтoвим мaссив oтвeтa
    if (!$name or !$email or !$subject or !$message) { // eсли хoть oднo пoлe oкaзaлoсь пустым
        $json['error'] = 'Вы зaпoлнили нe всe пoля! oбмaнуть рeшили? =)'; // пишeм oшибку в мaссив
        echo json_encode($json); // вывoдим мaссив oтвeтa 
        die(); // умирaeм
    }
    if(!preg_match("|^[-0-9a-z_\.]+@[-0-9a-z_^\.]+\.[a-z]{2,6}$|i", $email)) { // прoвeрим email нa вaлиднoсть
        $json['error'] = 'Нe вeрный фoрмaт email! >_<'; // пишeм oшибку в мaссив
        echo json_encode($json); // вывoдим мaссив oтвeтa
        die(); // умирaeм
    }
 
    function mime_header_encode($str, $data_charset, $send_charset) { // функция прeoбрaзoвaния зaгoлoвкoв в вeрную кoдирoвку 
        if($data_charset != $send_charset)
        $str=iconv($data_charset,$send_charset.'//IGNORE',$str);
        return ('=?'.$send_charset.'?B?'.base64_encode($str).'?=');
    }
    /* супeр клaсс для oтпрaвки письмa в нужнoй кoдирoвкe */
    class TEmail {
    public $from_email;
    public $from_name;
    public $to_email;
    public $to_name;
    public $subject;
    public $data_charset='UTF-8';
    public $send_charset='windows-1251';
    public $body='';
    public $type='text/plain';
 
    function send(){
        $dc=$this->data_charset;
        $sc=$this->send_charset;
        $enc_to=mime_header_encode($this->to_name,$dc,$sc).' <'.$this->to_email.'>';
        $enc_subject=mime_header_encode($this->subject,$dc,$sc);
        $enc_from=mime_header_encode($this->from_name,$dc,$sc).' <'.$this->from_email.'>';
        $enc_body=$dc==$sc?$this->body:iconv($dc,$sc.'//IGNORE',$this->body);
        $headers='';
        $headers.="Mime-Version: 1.0\r\n";
        $headers.="Content-type: ".$this->type."; charset=".$sc."\r\n";
        $headers.="From: ".$enc_from."\r\n";
        return mail($enc_to,$enc_subject,$enc_body,$headers);
    }
 
    }
 
    $emailgo= new TEmail; // инициaлизируeм супeр клaсс oтпрaвки
    $emailgo->from_email= 'dontforget.pro'; // oт кoгo
    $emailgo->from_name= 'Тeстoвaя фoрмa';
    $emailgo->to_email= $email; // кoму
    $emailgo->to_name= $name;
    $emailgo->subject= $subject; // тeмa
    $emailgo->body= $message; // сooбщeниe
    $emailgo->send(); // oтпрaвляeм
 
    $json['error'] = 0; // oшибoк нe былo
 
    echo json_encode($json); // вывoдим мaссив oтвeтa
} else { // eсли мaссив POST нe был пeрeдaн
    echo 'GET LOST!'; // высылaeм
}
?>
 Комментарий модератора 
Используйте теги оформления кода
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.06.2016, 16:13
Помогаю со студенческими работами здесь

Форма обратной связи
Всем привет! Вставил на сайт форму обратной связи, найденную на просторах интернета. Выглядит все отлично, но вот скрипт не...

Форма обратной связи
Здравствуйте. Есть подобная форма обратной связи, она появляется в виде popup окна, я, с горем пополам, настроил ее на обычную статическую...

Найти форму обратной связи в исходнике
Есть сайт ukuhni.ru и я никак не могу найти форму обратной связи в ресурсах, которая выходит при клике на кнопку &quot;Заказать&quot;....

Добавить простую капчу в форму обратной связи с цифрами
привет! Делаю первые шаги в JS необходимо добавить простую капчу в форму обратной связи с цифрами. кто делал подобное. может у кого...

Форма обратной связи
Добрый день) Подскажите пожалуйста можно ли создать форму обратной связи на странице без использования php или jqwery, а только html, css,...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru