background
ПОСЛЕДНИЕ ПУБЛИКАЦИИ
ПОДПИСКА
Будь В Курсе
Подпишись, и получай эксклюзивные обновления на свой E-Mail:

Ваш E-Mail полностью защищён

ОБСУЖДЕНИЕ

Форма обратной связи на PHP, AJAX, JS

Форма обратной связи на PHP, AJAX, JS
Просмотров: 7461  Скачан: 512 раз  Комментариев в теме: 3

На этой странице представлена красивая форма обратной связи для вашего сайта реализованная на php, ajax и js. Форма может похвастаться капчей, проверкой полей формы на валидность и сообщениях об ошибках, также скрипт позволяет выполнять аутентификацию SMTP. Вы можете, например, воспользоваться сервисом Gmail от Google. Собственно форма обратной связи это неотъемлемая часть любого сайта, через неё происходит общение между пользователем и администратором, разумеется дизайн обратной связи должен быть красивым и быть приятен для пользователя, дизайн данной формы вполне достойный вариант.

Шаг 1 - создание разметки

 

HTML

<div id="contact">
    <div id="top">
        <h1>Напишите нам</h1>
    </div>
    <div id="center">
        <div id="contact_form">
            <form method="post" action="php/send.php" id="contactForm">
                <div class="error" id="error">Произошла ошибка, сообщение не может быть отправлено!</div>
                <div class="success" id="success">Сообщение успешно отправлено!<br />Спасибо.</div>
                <span class="input">
                    <label for="name"><b>Ваше имя:</b> </label>
                    <input  type="text" id="name" name="name" />
                    <div class="warning" id="nameError">Это поле обязательно для заполнения</div>
                </span>
                <span class="input">
                    <label for="email"><b>Ваш Email:</b> </label>
                    <input  type="text" id="email" name="email" />
                    <div class="warning" id="emailError">Введите правильный email!</div>
                </span>
                <span class="input">
                    <label for="sales"><b>Тема:</b> </label>
                    <select id="sales" name="sales">
                        <option value="Техподдержка">Техподдержка</option>
                        <option value="Продажи">Продажи</option>
                        <option value="Другое">Другое</option>
                    </select>
                </span>
                <span class="input">
                    <label for="message"><b>Ваше сообщение:</b> </label>
                    <textarea id="message" name="message">Здравствуйте,</textarea>
                    <div class="warning" id="messageError">Это поле обязательно для заполнения</div>
                </span>
                <span class="input">
                    <label for="security_code"><b>Цифры:</b> </label>
                    <input class="noicon" type="text" id="security_code" name="security_code" style="width:100px" />
                    <img src="php/security/1/sec.php" style="vertical-align:middle;" />
                    <div class="warning" id="security_codeError">Цифры введены неверно!</div>
                </span>
                <span id="submit" class="input">
                    <label for="submit"></label>
                    <p id="ajax_loader" style="text-align:center;"><img src="images/contact/ajax-loader.gif" /></p>
                    <input id="send" type="submit" value="Отправить письмо!" />
                </span>
            </form>
        </div>
    </div>
    <div id="bot"></div>  
</div>

Шаг 2 - подключение стилей

 

CSS

<link rel="stylesheet" href="css/style.css" type="text/css" />

Шаг 3 - подключение JavaScript

 

JS

<script type="text/javascript" src="js/jquery-1.4.4.min.js"></script>
<script type="text/javascript">
jQuery(document).ready(function(){
    var Form = {
        name: 'contactForm',
        cssClass: {'warning' : 'warning','error' : 'error', 'success' : 'success'},
        id: {'error' : 'error', 'success': 'success'},
        errorPrefix: 'Error',
        action: function(){return $('#' + this.name).attr('action')},
        data: function(){
            return $('#' + this.name).serialize();
        },
        hideBox: function(el){
            $(el).slideUp('slow');
        },
        showBox: function(el){
            $(el).slideDown('slow');
        },
        invalids: null,
        setInvalids: function(invalid){
            this.invalids = invalid
        }
    }
    var cssBoxes = '.' + Form.cssClass['warning'] + ',.' + Form.cssClass['error'] + ',.' + Form.cssClass['success'];
    $('#ajax_loader').ajaxStart(function(){
        $('#send').hide();$(this).show()
    })
    $('#ajax_loader').ajaxComplete(function(){
        $('#send').show();$(this).hide()
    })
    $('#' + Form.name).submit(function(){
        Form.hideBox(cssBoxes);
        // Ajax request
        $.post(Form.action(), Form.data(), function(data){
            var $return = eval('(' + data + ')');
            if($return === true){
                Form.showBox('#' + Form.id['success']);
                $('#contact_form form input[type="text"]').attr('value', '');
                $('#contact_form form textarea[name="message"]').attr('value', '');
                $('#contact_form img').attr('src', 'images/contact/ajax-loader.gif');
                $('#contact_form img').attr('src', 'php/security/1/sec.php?'+Math.random());
            }else if($return === false){
                Form.showBox('#' + Form.id['error']);
            }
            else{
                for(var i in $return){
                    Form.showBox('#' + $return[i] + Form.errorPrefix);
                }
            }
        });
        return false;
    })
})
</script>

С установкой думаю все понятно, теперь нужно задать ваш Email, на который посетители будут отправлять вам письма. И так, открываем файл xml/config.php, находим вот эту строку:

<address>mail@mail.ru</address>

и заменяем данный Email ( mail@mail.ru ) на свой.

Если вы хотите, что-бы посетители отправляли вам письма на разную почту, в зависимости от выбранной темы (к примеру Техподдержка, Продажи, Другое), то вам нужно заменить пару строк. Заходим в файл xml/config.php и находим вот эти строки:

<address>mail@mail.ru</address>
<address on="subject" value="Техподдержка"></address>
<address on="subject" value="Продажи"></address>
<address on="subject" value="Другое"></address>

и заменяем их на вот эти:

<address on="subject" value="Техподдержка">mail1@mail.ru</address>
<address on="subject" value="Продажи">mail2@mail.ru</address>
<address on="subject" value="Другое">mail3@mail.ru</address>

Email адреса (mail1@mail.ru, mail2@mail.ru, mail1@mail.ru) заменяем на свои, в последствии письма будут отправлять на разные адреса, в зависимости какая тема выбрана ( Техподдержка, Продажи, Другое).

Материалы по теме:

Красивая форма обратной связи на PHP, CSS, JQueryКрасивая форма обратной связи на PH...

Красивая форма обратной связи на php css и jquery, к форме применены плагины formValidator (для проверка введённых значений), jQTransform (для стилиз...

3D Контактная форма на css33D Контактная форма на css3

Красивая контактная форма в довольно оригинальном стиле. Контактная форма имеет вид почтового конверта, когда вы кликаете по нём, он......

Форма регистрации html с валидациейФорма регистрации html с валидацией

Форма регистрации на сайте это неотъемлемая его часть, но ведь не менее важен и дизайна формы, в данном примере......

Форма обратной связи с админкой PHP, JS, CSS, MySQL, AJAXФорма обратной связи с админкой PHP...

Универсальная форма обратной связи написанная на PHP, JS, CSS, MySQL, AJAX. Форма довольно гибкая в возможностях, с помощью админки......

Обратная связь на JQuery, PHP и MySQLОбратная связь на JQuery, PHP и MyS...

Красивая форма обратной связи на PHP/JQuery и MySQL. В форме реализована проверка полей, сообщение об ошибке и база данных для хранения присылаемых ва...

Контактная форма (дизайн)Контактная форма (дизайн)

Неплохой дизайн контактной формы, если у вас туго с воображением или вы в душе не дизайнер, то можете воспользоваться этой формой, как вариант вполне ...

Фиксированная контактная форма на css и JQueryФиксированная контактная форма на c...

Большинство контактных форм встречаемых на разных ресурсах, выглядят не очень то и захватывающе, по сути везде используются статичные формы, поэтому.....
Интересные публикации:

Softdate Pro v1.3Softdate Pro v1.3

Softdate pro - это социальная платформа знакомств, которая предоставляет возможность общаться с людьми......

Горизонтальное прокручивающиеся меню «Scrollable Menu»Горизонтальное прокручивающиеся меню «Sc...

Прокручивающиеся меню в виде картинок, меню фиксируется внизу страницы, при наведении курсора мыши на......

Социальная выпадающая панель на cssСоциальная выпадающая панель на css

Неплохая социальная панель, при наведении курсора мыши, панель, плавно раскрывается, за тем уже видны сами иконки....

Горизонтальное меню с ползункомГоризонтальное меню с ползунком

Стильное горизонтальное меню с ползунком, который следует за курсором мыши....

Cumico v1.4Cumico v1.4

Универсальная премиум тема для WordPress с адаптивной вёрсткой и стильным дизайном. Возможность подключить Woocommerce это идеальное решение для......

Горизонтальное меню на jQuery «Slick Menu»Горизонтальное меню на jQuery «Slick Men...

Меню в довольно интересном стиле, меню раскидано в виде картинок, при наведении курсора мыши на картинку......

Кнопка с анимационным фоном на css3Кнопка с анимационным фоном на css3

Отличная кнопка на css3, кнопка реально классная и удобная, да и привлекает глаза посетителя....
  • Текущий 2.67/5
  • 1
  • 2
  • 3
  • 4
  • 5

Рейтинг: 2.7/5( Голосов 12 )

Комментариев в теме: (3)
↑ 0 ↓
serge
SyntaxError: expected expression, got '<'
Ответить Ответ с цитатой
↑ +2 ↓
ADMIN
Прокомментировано пользователя: serge
SyntaxError: expected expression, got '<'

Посмотрел, ошибки нет, все работает нормально. Вам нужно почистить кеш в браузере и все будет ок!

Ответить Ответ с цитатой
↑ +3 ↓
Alex
Довольно компактная форма, немного подправим стили и для моего сайта самое то..
Ответить Ответ с цитатой

Страницы: 1

Авторизация:
YandexGoogleVKMail.ruTwitterFacebookOdnoklassniki


Ваше имя:
Сайт:
Ваша почта:
RSS
Комментарий:
Введите символы:
captcha
Обновить