Dobrovoi Master
сделано с душой
В состоянии постоянного подключения...

Интеграция контактной формы в модальное окно

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

Обновлено: 31.10.2014

У нас есть вполне приличная контактная форма, сверстанная на чистом , как заделать работоспособное модальное , мы тоже разобрались, теперь остается эти два механизма объединить в единый инструмент. Вот как раз этим интересным занятием, мы сейчас и займемся, для начала же, можете посмотреть пример того, что у нас получится:
 
Контактная форма в модальном окне

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

HTML

В первую очередь необходимо правильно оформить ссылку для вызова модального окна, ей может быть просто текстовая ссылка в любой статье, а так же пункт в меню навигации по сайту. Соответственно туда где вам приспичит добавляем теги<a></a>со следующими атрибутами:

  • href #?w=600—  указывает ширину окна,
  • rel – уникальный атрибут  окна,
  • class=”poplight” – класс для показа всплывающего окна.

Собрав все атрибуты воедино получим следующий вид ссылки:

<a class="poplight" rel="popup_contact" href="#?w=600">Контакты</a>

Затем нам необходимо создать встроенную разметку для всплывающего окна. Разместить можно в любом месте страницы, ну например в нижней части содержания. Обратите внимание, что идентификатор всплывающего окна соответствует атрибуту rel тега <a></a>. Это и будет связывать ссылку и всплывающее окно вместе.

Чтоб не нагружать вас излишним копанием в коде всей конструкции, в разметку окна, сразу встроил html код контактной формы:

<div id="popup_contact" class="popup_block">
     <div class="note">
         <img src="images/form/email.jpg" alt="Контакты" style="float:left;margin:5px 10px 5px 0; " />
         <h1>Уважаемые друзья!</h1>
         <p>
          Обращаю Ваше внимание, что пункты отмеченные звездочкой, обязательны для заполнения.
         </p>
     </div>
     <form id="form" action="/" method="post">      
           <fieldset>
                   <p class="first">
                      <label for="name">Имя *</label>
                     <input type="text" name="name" id="name" size="30" />
                  </p>
                  <p>
                     <label for="email">Email *</label>
                    <input type="text" name="email" id="email" size="30" />
                 </p>
                 <p>
                   <label for="web">Вебсайт (не обязательно)</label>
                   <input type="text" name="web" id="web" size="30" />
                </p>                    
          </fieldset>
          <fieldset>                                                                                                                                                    
              <p>
                <label for="message">Сообщение:</label>
                <textarea name="message" id="message" cols="30" rows="10"></textarea>
             </p>                                                               
         </fieldset>                                    
        <p class="submit"><button type="submit">Отправить</button></p>                                            
    </form>
</div>

Как вы видите всплывающее окно, это div — контейнер с идентификатором popup_contact, который соответствует атрибуту rel в активирующей ссылке.
Останавливаться на разметке контактной формы не буду, так как ее макет полностью идентичен форме, о которой рассказывал в статье: Стиль контактной формы CSS.
На ряду с формой, добавил небольшой информационный блок div id=”note” с изображением и текстовой шелухой ( пояснением к форме). При неуемном желании всегда сможете изменить, или полностью исключить содержание этого блока из состава всплывающего окна.

CSS

Тихим сапом, без лишней суеты, подошли к стилям css, как для окошка, так и для формы. Со стилями сложностей возникнуть не должно, для придания «картине» ясности я прописал некоторые пояснения к селекторам. Важно ничего не напутать, да и не переусердствовать с экспериментами.

/*--Модальное окно--*/
.popup_block{
   position: fixed;
   top: 50%;
   left: 50%;
   z-index: 99999;
   display: none; /*--по умолчанию скрыт--*/
   float: left;
   -webkit-box-sizing: content-box;
   -moz-box-sizing: content-box; 
   box-sizing: content-box;
   padding: 15px;
   border: 10px solid #6e6e6e;
/*-- скругленные углы--*/
   -webkit-border-radius: 5px;
   -moz-border-radius: 5px;
   border-radius: 5px;
   background: #fff;
/*--тени для блока--*/
   -webkit-box-shadow: 0px 0px 20px #000;
   -moz-box-shadow: 0px 0px 20px #000;
   box-shadow: 0px 0px 20px #000;
   color: #000;
   font-size: .9em;
}
/*--Фиксированное позиционирование для тупого IE6--*/
*html #fade {
   position: absolute;
}
*html .popup_block {
   position: absolute;
}
/*--блок заголовка--*/
.note{
   margin:0 0 30px 0;
}
.note img{
   float:left;
   margin:5px 10px 5px 0;
   width: 100px;
   height: 100px;
}
.note h1{
   color: #008000;
   text-shadow: 0 1px 3px rgba(0,0,0,.3);
   font:24px Monotype Corsiva, Arial;      
}
/* формируем кнопку закрытия */
.close {
    position: absolute;
    top: -18px;
    right: -18px;
    width: 24px;
    height: 24px;
    border: 2px solid #ccc;
    -webkit-border-radius: 15px;
    -moz-border-radius: 15px;
    -ms-border-radius: 15px;
    -o-border-radius: 15px;
    border-radius: 15px;
    background-color: rgba(61, 61, 61, 0.8);
    -webkit-box-shadow: 0px 0px 10px #000;
    -moz-box-shadow: 0px 0px 10px #000;
    box-shadow: 0px 0px 10px #000;
    text-align: center;
    text-decoration: none;
    font-weight: bold;
    line-height: 20px;
    -webkit-transition: all ease .8s;
    -moz-transition: all ease .8s;
    -ms-transition: all ease .8s;
    -o-transition: all ease .8s;
    transition: all ease .8s;
}
.close:before {
    color: rgba(255, 255, 255, 0.9);
    content: "X";
    text-shadow: 0 -1px rgba(0, 0, 0, 0.9);
    font-size: 12px;
}
.close:hover {
    background-color: rgba(252, 20, 0, 0.8);
/*--крутим кнопку при наведении--*/
    -webkit-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    -o-transform: rotate(360deg);
    transform: rotate(360deg);    
}
/* контактная форма */
#form{
    overflow: hidden;
    margin: 0 auto;
    padding-top: 10px;
/* устанавливаем необходимую ширину формы в зависимости от дизайна
 ** форма отлично растягивается */
    width: 100%;
    border: 1px solid #D3D3D3;
/* закругляем углы */
    border-radius:8px;
    background: none repeat scroll 0 0 #FFFFFF;
/* добавляем тени для блока*/
    box-shadow: 0 0 5px #CCCCCC, 1px 1px 0 #FFFFFF inset, -1px -1px 0 #FFFFFF inset, 0 0 15px #DDDDDD inset;
    text-align: left;
}
/* формируем элементы внутри формы */
#form fieldset{
    display:inline;
    float:left;
    margin:0;
    margin-left:26px;
    padding:0;
    width: 42%;
    border:none; 
}              
#form p{
    margin:.5em 0;
}
/* подписи к полям ввода */    
#form label{
    display:block;
    margin-bottom:1px;
    color:#5B5B5B;
}     
#form input, #form textarea{
    padding:3px;
/* отключаем бордюры у инпутов и текстового поля */
    border: none;
/* закругляем углы полей ввода */
    -webkit-border-radius:.3em;
    -moz-border-radius:.3em;
    border-radius:.3em;             
    background-color: #F7F7F7;
/* добавляем внутренние тени у инпутов и текстового поля */
    box-shadow: inset 0 0 5px rgba(0,0,0,0.1), inset 0 1px 2px rgba(0,0,0,0.3);
    color: #5B5B5B;
    font:13px Trebuchet MS, Arial, Helvetica, Sans-Serif;
}
#form input {
/* устанавливаем ширину инпутов */
   width:90%;
}
/* изменяем оформление полей ввода при фокусе */
#form input:focus, #form textarea:focus {
  background: #F2F2F2;
  box-shadow: inset 0 0 5px rgba(0,0,0,0.2), inset 0 1px 2px rgba(0,0,0,0.4);
  color: #333;
}
#form textarea{
    overflow:auto;
    width:100%;
/* устанавливаем ширину текстового поля */
    height:120px;
}
/* формируем нижний сектор формы */                                    
#form p.submit{
    clear:both;
    margin:0;
    padding: 10px 25px 20px;
    text-align:right;
}
/* оформляем кнопку отправки */        
#form button{
/* устанавливаем необходимую ширину кнопки */
    border: solid 1px #2f96b4;
/* закругляем углы кнопки */
    border-radius: 5px;
    background-color: #49AFCD;
/* градиентная заливка для современных браузеров */    
    background-image:-moz-linear-gradient(center top , #5BC0DE, #2F96B4);
    background-image: -webkit-linear-gradient(center top, #5bc0de, #2f96b4);
    background-image: -ms-linear-gradient(#5bc0de, #2f96b4);
    background-image:-o-linear-gradient(center top , #5BC0DE, #2F96B4);
/* добавляем внешние тени */
    box-shadow: 0 1px 2px rgba(0,0,0,0.4);
    color:#fff;
    padding:0 12px;
    text-align:center;
    line-height:28px;
/* градиент для IE6-9 */
    filter: progid:DXImageTransform.Microsoft.Gradient(StartColorStr='#5BC0DE', EndColorStr='#2F96B4', GradientType=0); 
    cursor:pointer;
}
/* изменяем оформление кнопки при наведении */
#form button:hover {
    border-color: #2C8BA5;
    box-shadow: none;
}
/* изменяем оформление кнопки при нажатии */
#form button:active {
    border-bottom: 1px solid #5BC0DE;
    background-image:-moz-linear-gradient(#2F96B4, #5BC0DE); /* Firefox */
    background-image: -webkit-linear-gradient(#2F96B4, #5BC0DE); /* Chrome, Safari */
    background-image: -ms-linear-gradient(#2F96B4, #5BC0DE); /* IE-10 */
    background-image:-o-linear-gradient(#2F96B4, #5BC0DE); /* Opera */
/* добавляем внутренние тени */
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3) inset;
/* градиент для IE6-9 */
    filter: progid:DXImageTransform.Microsoft.Gradient(StartColorStr='#2F96B4', EndColorStr='#5BC0DE', GradientType=0);
}
/* конец формы */

Так как всплывающие окна могут иметь разный размер, мы не указываем в CSS popup_block края окна, вычислить необходимый размер это задача для .

Подключение JQuery

С разметкой, оформлением модального окна и контактной формы мы разобрались. Теперь, чтобы все это хозяйство заработало, необходимо воспользоваться магией JQuery, подключив плагин к документу. В начале документа между тегами <head>...</head>, или же в подвале страницы, перед закрывающем тегом </body> пропишите следующее:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="js/dm-modal.js"></script>

На этом пожалуй и все, всплывающее окно с встроенной контактной формой готово. Все бы ничего, если бы не замшелый и убогий IEшка, с его патологической заторможенностью, в 6 и 7 версии браузера, даже с использованием фильтра, функция прозрачности слоя opacity не прокатывает. Ну да ладно, думается мне на IEшку можно и подзабить, жаль только пользователи, которые в извращенной форме подсажены на этот браузер, не увидят корректной работы всей конструкции.

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

С Уважением, Андрей .

Буду всем признателен, если поддержите проект — добавив блог в исключения AdBlock и поделитесь ссылкой на запись в своих соц-сетях:

Всего комментариев: 134

  • Михаил: 1 марта, 2012 в 17:52

    Я начинающий, типа веб дезайнер. Ваш плагин скачал, прицепил к нему форму php, для почты. теперь у меня огромная проблема, как это все хозяйство связать с главной страницей, чтобы нажал на ссылку, допустим «обратная связь», а окно сразу и открылось, а то у меня получается — переходит сначала на страницу, с ссылкой, а потом уже с этой ссылки открывается модальное окно :(( я понимаю, что для кого то такой вопрос решить не проблема, но для меня это выше моего понимания, и хорошо бы еще сделать, чтобы с любой страницы, это окно открывалось, а все файлы его касающиеся, хранились бы в одном месте, это возможно?

    Ответить
    • driver: 1 марта, 2012 в 18:32

      Здравствуйте Михаил.
      Как прописать ссылку для вызова модального окна с контактной формой, показано в статье.

      <a class=”poplight” rel=”popup_contact” href=”#?w=600″ rel=”nofollow”>Контакты</a>
      <a class=”poplight” rel=”popup_contact” href=”#?w=600″ rel=”nofollow”>Контакты</a>

      Разметку для всплывающего окна разместить можно в любом месте страницы, ну например в нижней части содержания. Обратите внимание, что идентификатор всплывающего окна соответствует атрибуту rel тега <a></a>. Это и будет связывать ссылку и всплывающее окно вместе. Для этого не нужно создавать отдельную страницу, что скорее всего вы и проделали ))). Подключайте JQuery к главной странице и вперед. Не забывайте про правильные пути к картинкам в css, если у вас для формы и окна существует отдельный файл стилей.
      Прочитайте предыдущие комментарии, может вам подойдет решение Алексея. Удачи!

      Ответить
  • Михаил: 1 марта, 2012 в 19:52

    ага, вроде что то начало получаться, но сегодня уже поздно, завтра попробую добить. у меня так получилось, потому что я сначала к Вашему index.html, подключил php, и у меня проблем возник, но теперь я все понял вроде. Отличная статья, огромное спасибо.

    Ответить
  • Михаил: 2 марта, 2012 в 05:05

    Все, поставил, оказалось проще, чем я думал 🙂 Теперь вот другой проблем, в Вашем коде html 3 ошибки стр. 12, 62, 75 и 2 опасности стр. 56, 58 (если считать по Вашему исходнику), валидатор матерится, не знаю теперь, что и делать. Потому что Вы же наверное уже поняли, что я в этом деле отнюдь не дока 🙁

    Ответить
    • driver: 2 марта, 2012 в 23:37

      Правильно Михаил, одна ошибка это ссылка на вызов формы в тегах заголовка h3 /h3, У ВАС ЭТОГО НЕТ так что, что за волнения? Типа две опасности увидел валидатор, просто в примере javascript прописан в подвале страницы, в чем конфликт не понял, поместите перед /head и спите спокойно. По остальным двум ошибкам даже обсуждать не хочется, с какого то перепуга валидатор не видит закрывающий тег >. И напоследок проверьте любую страницу Яши, сильно удивитесь. Думаю, во чтобы то ни стало подстраиваться под валидатор не обзяательно, главное, чтобы нормально отображалось в основных браузерах.

      Ответить
  • Михаил: 2 марта, 2012 в 09:40

    Кстати, все могут полюбоваться этим прекрасным плагином в деле: phototops.ru (только на этой странице, на другие еще не поставил,см в самом низу в подвале — ссылка «Обратная связь», а если письмо отправите, получите сообщение, выдернутое из исходника взятом на russeller.com, так я соединил две работы мастеров в одну :))лучше всего он в Opera и Firefox отображается, и кстати в IE с последним обновлением тоже все отлично, а вот в Хроме не очень правильно, но тоже нормально.

    Ответить
  • Михаил: 3 марта, 2012 в 05:54

    Благодарю, что не оставили мои вопросы без комментария. Все теперь понятно. Да я не против, просто, как не специалист задаю вопросы у знающих людей.

    Ответить
  • кирилл пружаны: 12 марта, 2012 в 13:02

    покритикую:
    статья конечно полезная для понимания методов работы. но моё мнение такое — я не очень то понимаю смысла в таком решении. ведь контент уже вписан в страницу — он просто не виден. это не уменьшает её веса. просто отображает когда надо. тут же можно запрос отправить и квери аякс догрузить в див какой то на странице…
    желания:
    например я сейчас 3 дня гуглю и не нашёл вот такое: например — на странице в коментах есть имя юзера написавшего комент, как ссылка. мне надо чтобы при наведении курсора на сылку выполнился запрос на сервер и в див под сылкой подгрузил ответ, там аватар, откуда юзер и маил сайт и тд. в див размером 200*200 и поверх страницы. убрал мышку блок исчез, навел он опять появился.
    ну как то так.
    (ваше поле раздвинул, так оно влезло под правую часть,
    вернуть не могу…)
    я в принципе сделал, но коряво чуть получилось.
    да и хотелось бы чтобы подгруженная один раз инфа
    не убиралась вообще а сохранялась гдето, чтобы
    снова запрос не выполнять, пока тупо убираю с экрана.
    вот сделайте такой урок и сотни юзеров будуд
    вам благодарны. да и известите мне на мыло.

    Ответить
  • Нодир: 26 марта, 2012 в 15:19

    Спасибо, прекрасный плагин.
    Проверял на кроссбраузерность — не пойму почему не хочет работать в IE8. Подскажите пожалуйста.

    Ответить
  • Гена: 28 марта, 2012 в 00:23

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

    Ответить
  • Александр: 12 апреля, 2012 в 13:34

    Скажите можно ли это реализовать в joomla. Или может кто знает как можно сделать подобное чудо в joomla.

    Ответить
  • Max: 24 апреля, 2012 в 21:10

    Здравствуйте. Огромное спасибо за материалы! Все установил и работает, кроме того, что когда я нажимаю «отправить», ничего не происходит… Думаю, что нужно прописать E-mail адрес, на который, собственно и будут приходить письма. Но проблема в том, что я не знаю куда и что прописать(( Помогите пожалуйста, а то завтра экзамен, нужно будет показать готовый сайт. Заранее благодарен.

    Ответить
  • Max: 24 апреля, 2012 в 21:13

    Сайт уже закончен, но не работает эта кнопка…

    Ответить
    • driver: 24 апреля, 2012 в 21:49

      Max, вечер добрый!
      В статье описан способ интеграции контактной формы, точнее ее html оболочки, а так же оформление формы с помощью CSS. Без Php обработчика это просто красивая оболочка формы обратной связи. Php обработчик (скрипт), можно найти в инете, благо этого добра навалом. От вашего хостинга потребуется поддержка Php. Если таковая присутствует, то проблем нет.
      Какую CMS (движок) для сайта вы использовали или сайт статический на Html?
      Очень подробно и содержательно по этой теме расписано Здесь , заодно можно скачать готовый скрипт формы обратной связи.

      Ответить
  • Max: 24 апреля, 2012 в 22:22

    Я сделал просто на html, без движка. Я еще не залил на сервер, сегодня должен залить… Если честно, я совсем новичок в этом деле, усердно стараюсь, но в php не разобрался еще… А на счет подробной и содержательной ссылки, я обязательно почитаю, просто, если бы вы подкинули пару идей, по поводу как сделать это побыстрее, я был бы признателен.

    Ответить
    • driver: 24 апреля, 2012 в 22:52

      Если хостинг с поддержкой Php, проблем не возникнет. Если нет, то можно воспользоваться онлайн сервисами генераторов и конструкторов форм обратной связи, которые предоставляют вам бесплатно свои собственные Php обработчики, которые будут расположены на их серверах. Для примера посмотрите конструктор на ip-whois. Дизайн форм конечно не ахти какой, но компенсируется тем, что можно создать форму за пять секунд и еще за минуту поставить абсолютно на любой сайт, даже расположенный на хостинге без поддержки Php. Можно потом переписать пути и данные из кода их формы в свою. Не гарантирую, что точно сработает, сам не проверял ))) И еще один генератор форм обратной связи.
      Удачи!

      Ответить
  • Max: 24 апреля, 2012 в 23:14

    Я уже закинул ваш каркас… Можно ли на него пшп скрипт найти? Просто скажите, как правильно написать поисковую форму вопроса? Спасибо за терпение и понимание.
    П.С. Я уже посоветовал этот сайт всем своим однокурсникам, только они говорят на французском, походу через гугл будут переводить…))

    Ответить
    • driver: 24 апреля, 2012 в 23:32

      Max вбивайте в поиск «php скрипт отправки почты», желательно без кавычек ))) Но думается мне, что вы взялись за сложный вариант организации обратной связи. Надеюсь все у вас получится. Посмотрите видео урок и уже на базе полученной инфы, методом проб и ошибок подключите скрипт к вашей форме, главное чтобы мозг не вскипел и хватило терпения.

      Ответить
    • driver: 24 апреля, 2012 в 23:43

      Max. Вдогонку к предыдущему комменту. Посмотрите как реализована данная форма в модальном окне, по моему уроку на сайте phototops.ru, см в самом низу в подвале — ссылка «Обратная связь». При желании можете связаться с админом сайта и узнать все технические детали. По моему у него все замечательно получилось и работает. Удачи!

      Ответить
  • Max: 25 апреля, 2012 в 00:07

    Огромное спасибо!!!

    Ответить
    • driver: 25 апреля, 2012 в 11:23

      Пожалуйста, всегда рад помочь. Спасибо вам, что читаете мои статьи. Заглядывайте почаще )))

      Ответить
  • Мария: 16 мая, 2012 в 10:09

    Здравствуйте!
    Подскажите, пожалуйста, как сделать так, чтобы после нажатия на кнопку «Отправить» в этом же модальном окне выводилось сообщение «Спасибо за заявку! Мы свяжемся с вами в ближайшее время»?

    Ответить
  • Тимур Кадыров: 27 мая, 2012 в 23:40

    не могу привязать ссылку…

    Ответить
  • driver: 28 мая, 2012 в 00:05

    не могу привязать ссылку…
    Тимур в комментариях да в самой статье я подробно описал как привязать ссылку на вызов модального окна, повторюсь специально для вас:

    <a class=”poplight” rel=”popup_contact” href=”#?w=600″ rel=”nofollow”>Контакты</a>
    <a class=”poplight” rel=”popup_contact” href=”#?w=600″ rel=”nofollow”>Контакты</a>

    Ответить
  • Тимур Кадыров: 28 мая, 2012 в 14:04

    да да … тупанул)) простите))

    Ответить
    • driver: 28 мая, 2012 в 19:14

      Ничего бывает)))

      Ответить
  • Тимур Кадыров: 28 мая, 2012 в 14:10

    а файл jquery.min.js его тоже к себе нужно залить? если да то где его взять?)

    Ответить
    • driver: 28 мая, 2012 в 19:25

      Тимур, jquery.min.js это размещенный на Google отдельный файл библиотеки jQuery, заливать его к себе нет надобности, главное правильно прописать в html, как, в статье все подробно расписано.

      Ответить
  • Тимур Кадыров: 28 мая, 2012 в 15:48

    когда нажимаю на контакты экран мутнеет и все((

    Ответить
    • driver: 28 мая, 2012 в 19:41

      Тимур, мне трудно не видя объект давать вам какой то совет. У вас не открывается всплывающее окно, вы вообще разместили каркас окна на странице html? Проверьте ссылку, должно быть href=”#?w=600″ rel=”popup_contact” class=”poplight”, соответственно div окошка с идентификатором id=”popup_contact” и классом class=”popup_block”.
      Можете тупо из примера кусок кода окна вбить себе и все!)))

      Ответить
  • Тимур Кадыров: 28 мая, 2012 в 21:26

    спасибо за терпение разобрался)

    Ответить
    • driver: 28 мая, 2012 в 21:32

      Тимур. Очень рад за вас, надеюсь что все получилось и работает. Когда все настроите, можете прописать в комментарии ссылку на ваш проект.
      Удачи!

      Ответить
  • Виталий: 1 июля, 2012 в 02:36

    Все сделал как в инструкции, но когда заполняю поля и нажимаю отправить ничего не происходит. Что нужно еще настроить, чтобы приходили письма на определенный ящик!?

    Ответить
    • driver: 1 июля, 2012 в 17:04

      Виталий, здравствуйте. Мало создать форму обратной связи, что бы она работала необходим Php обработчик (скрипт), а так, это всего лишь красивая оболочка. От вашего хостинга потребуется поддержка Php. Повторюсь, если хостинг с поддержкой Php, проблем не возникнет. Если нет, то можно воспользоваться онлайн сервисами генераторов и конструкторов форм обратной связи, которые предоставляют вам бесплатно свои собственные Php обработчики.
      В комментариях выше есть ответы, почти на все ваши вопросы.
      Удачи!

      Ответить
  • Александр: 17 июля, 2012 в 22:53

    Здравствуйте. Сразу хочу поблагодарить за массу хороших инструментов. С удовольствием пользуюсь некоторыми из них. Но вот с этой красивой формой — прям беда!
    Дело в том, что у меня сайт на движке php. Со стилями — проблемы нет — все прописал. Проблема в том как правильно подключить JQuery со скриптом. Подключение всех скриптов у меня находится в header.tpl. Там уже куча ссылок на скрипты. Если я там же добавляю то, что советуете Вы (начиная с ) и заканчивая return false;
    });) — то сайт вообще перестает работать. Я думаю, что этот скрипт нужно подключить иначе. Но как? Буду очень признателен за подсказку.

    Ответить
    • driver: 18 июля, 2012 в 09:45

      Здравствуйте Александр. Спасибо за оценку статьи. Думается мне, что вы прямо на странице header.tpl вставляете тело скрипта. Необходимо вписывать в //Когда вы нажмете на ссылку с классом poplight и HREF начинается с a…….
      Моя оплошность, не указал в статье, в примере кода эту деталь, думал очевидно, исправил, теперь более понятно.
      Так же, ничего не мешает создать отдельный файл javascript, обозвать его, например: winmodal.js, поместить его туда где у вас находятся js, и уже непосредственно на странице header.tpl правильно прописать путь до него типа: .
      Удачи! Заходите почаще.

      Ответить
  • Юлия: 25 сентября, 2012 в 16:37

    Добрый день!
    Настроила все как и описывали, но не работает отправка сообщений.
    Точнее так: когда форма открывается в модальном оке, сообщения НЕ отправляются.
    Когда форма открывается в новом оке, сообщения отправляются нормально.
    В чем может быть ошибка?

    Ответить
    • driver: 25 сентября, 2012 в 18:57

      День добрый или вечер!
      Юлия, если я вас правильно понял письма отправляются только тогда когда форма размещена вне модального окна , а на отдельной странице контактов. Php обработчик (скрипт) у вас привязан скорее к стандартной странице контактов. Нам же требуется связать обработчик php с формой в модальном окне, то есть правильно прописать путь до исполняемого файла. Если исходить из html разметки формы, примерно так, на вскидку кусок кода для примера:
      <form method="post" action="php/mailto.php" id="form"></form>
      У вас конечно расположение файла php совершенно другое, но принцип привязки формы с обработчиком схожий, проверьте путь до файла обработчика. Надеюсь все у вас получится.
      Удачи!

      Ответить
  • Юлия: 25 сентября, 2012 в 19:51

    Добрый вечер. Все так и сделала. Файл лежит в той же папке, что и файл, где прописан код
    К примеру, в папке Main лежит send.php и файл index.php

    Ответить
    • driver: 25 сентября, 2012 в 20:12

      Например каркас модального окна с контактной формой прописан в файле index.php (может header.php, что в принципе чаще всего в случае с wordpress) тогда наверное так:
      <form method="post" action="main/send.php" id="form"></form>
      В некоторых случаях приходится писать полный путь вида:
      <form method="post" action="http://ваш сайт/main/send.php" id="form"></form>

      Ответить
      • Юлия: 25 сентября, 2012 в 21:27

        Огромное спасибо! Все все работает) — прописала полный путь к файлу аж через http://sire.com/wp-content/themes/тема/send.php
        п.с. Ваш скрипт самый лучший!

        Ответить
  • driver: 28 сентября, 2012 в 00:27

    Юлия
    Что то вроде этого:
    $subject = '=?windows-1251?B?'.base64_encode($subject).'?=';
    или:
    $mymail,$topic,$message,"Content-type:text/plain;charset = UTF-8\r\n"
    Не обязательно, что у вас такие же переменные, так для наводки и примера)))
    Еще причины ошибки: Заблокирован доступ хостером, не указан путь, используется другой демон для отправки почты.
    Скрипт сам не чего не отправляет, он «просит» отправить одну из служб на сервере, например, sendmail, отправить письмо. Так вот скрипту нужно сказать, «кого просить», при условии, что хостер предоставляет такую возможность

    Ответить
  • Дмитрий: 29 сентября, 2012 в 19:50

    а как в Joomla такое осуществить?

    Ответить
    • driver: 29 сентября, 2012 в 20:58

      Дмитрий.
      С Joomla я мало работал, но все делается как и с любым другим движком. Загружаете файлы модального окна и и контактной формы себе на сайт, подключаете обработчик к форме контактов, ставите ссылку на вызов модального окна, в меню или в где угодно. Наверное так, если нет, то более сведущие в Joomla, читатели этого блога, надеюсь поправят и подскажут вам.

      Ответить
      • Дмитрий: 29 сентября, 2012 в 21:07

        у меня вот так все выходит
        что я делаю не так?

        Ответить
  • Дмитрий: 29 сентября, 2012 в 19:51

    размещаю как html у меня все в одной строке (( что делать? подскажите пожалуйста

    Ответить
    • driver: 29 сентября, 2012 в 21:17

      Ну, попробуйте взять код модального окна и формы из статьи, или же из страницы с примером. Проверьте правильно ли подключили файл стилей, если стили модального окна и формы вы прописали в своем .css, проверьте на наличие ошибок, пути до элементов оформления, id, классы и т.д. Не видя объекта, трудно на одних лишь догадках, что либо подсказать и помочь. В статье все разложено до мельчайших подробностей, возьмите за ориентир исходники демо-страницы.
      Удачи!

      Ответить
      • Дмитрий: 29 сентября, 2012 в 21:30

        Спасибо буду пробовать , хотя вроде все делал правильно , расписано и вправду все подробно и понятно . Попробую.

        Ответить
  • Александр: 1 октября, 2012 в 07:27

    Добрый день. Не подскажите, как сделать так, чтобы при нажатии на кнопку «Отправить» модальное окно не закрывалось? Просто у меня в этой же форме выводятся некоторые данные после отправки сообщения.

    Ответить
  • Андрей: 2 ноября, 2012 в 22:40

    Помогите поставить эту форму. Я что то не понимаю (не практики со скриптами). Какие файлы нужно создать? У меня WP. В heder.php я подключил скрипт, скачал файлы и залил в корень шаблона но не работает. То что вы в посте приводите коды в какие их файлы вставлять. Я только в style.css в конце вставил код стилей и последний код из поста я вставил в heder.php перед скрипт. А предыдущий код на div куда вставлять? Как сделать что бы заработало?

    Ответить
    • driver: 2 ноября, 2012 в 23:20

      В начале документа между тегами <head> и </head>(header.php), или же в подвале темы (файл footer.php), перед закрывающем тегом /body подключите JQuery, код показан в статье , в разделе подключение JQuery. В CSS правильно укажите путь до файлов изображений модального окна и формы обратной связи. Div контейнер окна с формой, можно вставить и в footer.php, и в header.php после тега body, а так же в отдельной записи single.php. Во всех вариантах, при правильном подключении всех рабочих файлов и ссылки на вызов модального окна, все будет работать в лучшем виде.
      скачал файлы и залил в корень шаблона
      Что бы не заморачиваться с путями до картинок, лучше поместить их в папку с изображениями вашей темы, обычно это папка images или img, соответственно такая же папка должна быть указана и в стилях оформления окна, и контактной формы.
      Еще раз внимательно изучите урок, прочитайте другие комментарии. Надеюсь все у вас получится. Удачи!

      Ответить
  • Лиза: 14 ноября, 2012 в 16:42

    Спасибо большое за статью!
    Много подобных скриптов перепробовала и только ваш подошел и прост для изменения под себя. Только возникла такая проблема. Подскажите, пожалуйста, что нужно подправить, чтобы можно было делать две ссылки на два таких разных окна. Т.е. чтобы ссылки вели на разные контактные формы. У меня никак не получается 🙁

    Ответить
  • Лиза: 14 ноября, 2012 в 23:47

    Вопрос снят. Проблема была в том, что я размещала код форм в разных файлах. Поместив в один, все заработало.

    Ответить
    • driver: 14 ноября, 2012 в 23:54

      Лиза. Спасибо за интерес к статье и я очень рад за вас, что все получилось. Часто так и происходит, решение находится на поверхности, всегда где то рядом.
      Удачи!

      Ответить
      • Николай: 16 сентября, 2012 в 18:33

        Здравствуйте я вот не пойму почему у меня не работает окно нажимаю на ссылку но ничего не происходит, может подскажете

        Ответить
  • Антон: 23 ноября, 2012 в 02:48

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

    Ответить
    • driver: 23 ноября, 2012 в 22:25

      Здравствуйте Антон.
      В данном виде скрипт не предусматривает открытие модального окна по загрузке. Вообще, я не приветствую такой метод подачи информации, хотя многие его используют и можно легко найти нужное вам решение. Да и браузеры с подозрением относятся к всплывающим окнам при загрузке страницы и по умолчанию блокируют их.
      Готовлю материал именно на эту тему, а пока посмотрите Демо из будущей статьи. Если это оно)))), следите за обновлениями блога!

      Ответить
  • Алексей: 27 ноября, 2012 в 17:53

    статейка очень помогла.
    Немного усовершенствовал -т.е. раскидал лишний вес.
    Папки со Стилями и изображениями поместил в папку plugins\modal_contact
    в файл Header.php через редактор внешнего вида поместил сылку
    (link rel=”stylesheet” href=”сылка на стиль” type=”text/css” /) между тегами HEAD.
    Ява скрипт выше изложенный поместил в файл modal.js
    Блок для публикации который будет вставляться в страницы через редактор
    (a class=”poplight” href=”#?w=600″ rel=”popup_contact”)Контакты(/a)
    (div id=”popup_contact” class=”popup_block”)
    ТУТ вставляем что угодно — я лично вставил ссылку на форму плагина «contact form7»
    (/div)
    (script type=”text/javascript” src=”http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js”)(/script)
    (script type=”text/javascript” src=”путь где размещается файл /modal.js”) (/script)
    теги с ссылками на скрипты можно разметить так же в header.php между тегами head . а в блоке вставки их убрать.
    И все используй данную форточку где угодно и с чем угодно.
    Соответственно круглые скобки — это угловые скобки -для тех кто не догодался.

    Ответить
  • Алексей: 27 ноября, 2012 в 18:08

    Кхм. теги со ссылками на скрипты лучше разместить в файле footer.php (также через редактор) перед закрывающий тегом body. потому что указав в заголовке -скрипт не исполняется(по крайней мере у меня).

    Ответить
  • Алексей: 19 декабря, 2012 в 11:40

    Здравствуйте.
    Спасибо за визуальное представление, не подкажете как серверную часть задействовать, не могу создать скрипт php с данными этой формой, чтобы они отправлялись в письме на почту и выводилось сообщение: «Письмо отправлено» в данной форме.

    Ответить
    • driver: 19 декабря, 2012 в 20:20

      Здравствуйте, Алексей.
      В комментариях написано, как подключать php скрипт к форме. Помимо самого скрипта у вас скорее всего есть и файл конфигурации(что то вроде config.php), в котором и настраиваются все функции для работы с формой, а так же различные сообщения(отправлено или нет письмо и т.д и т.п). Чтобы сообщения выводились непосредственно в мод.окне, попробуйте воспользоваться стандартным оператором include (), для подключения внешнего файла, если не ошибаюсь(все может быть), то примерно так:
      < ?php
      include "ваш файл.php";
      ?>

      Обратите внимание на путь к нужному вам файлу .php…Правда у меня есть сомнения, что файл будет подгружаться в всплывающее окно, так как js настроен на одиночный вызов окна по клику. На отдельной странице, сообщения после отправки письма, выводятся замечательно.
      Удачи!

      Ответить
      • Алексей: 21 декабря, 2012 в 02:06

        Спасибо, разобрался. Если что, можно увидеть вашу форму у меня на сайте через вкладку «Обратная связь».
        Хотел узнать, немного не по теме, но не знаю больше к кому обратиться.
        У меня много цсс файлов (css3) и сам шаблон html5, но в разных браузерах по разному отображается, можно ли интегрировать под все одинаково, вот 2 страницы:
        1) bon4.ru/tennis/arenda.html (в опере отображается нормально, в гугле строка заголовка уезжает вправо)
        2) bon4.ru/tennis (в обоих браузерах нормально отображается)
        В чем может быть проблема, чтобы каждый код в css не перебирать?
        Заранее благодарен

        Ответить
  • Андрей: 9 апреля, 2013 в 01:02

    Привет!
    Второй раз пользую,очень понравилась форма.
    Но вот какие возникли трудности:
    1.Из-за использования картинок с фиксированной шириной при ее сужении вид уже не тот. Т.е. даже элементарную форму логина, где не нужна большая ширина, уже не сделать. Приходится работать с фотошопом.
    2. То же самое с кнопкой отправки. Если надпись коротенькая, то с широкой формой смотрится негармонично

    Ответить
  • driver: 9 апреля, 2013 в 01:40

    Андрей.
    Как саму форму так и кнопку можно легко сверстать и без изображений, используя новые стандарты CSS3 (border-radius, box-shadow, градиент и т.д.).

    Ответить
  • apocallipsis: 31 мая, 2013 в 13:17

    Здравствуйте! подскажите плз:
    на сайте заказчика есть:
    1- Три различных шаблона
    2- Мини-навигация из трех ссылок (на одной из них и размещена ссылка на модальное окно), которые размещены на всех страницах сайта, при помощи блока и имеют динамические адреса.
    3- На сайте ЧПУ (site.ru/razdel/straniza)
    Форму я смог прикрутить, но она появляется только на главной странице… Пытался «играть с ссылками» — ни чего не вышло…
    Вопрос: Как мне прописать путь ссылки, чтобы была возможность открыть модальное окно на любой из используемых страницах? Вариант с прямой ссылкой- не проходит…

    Ответить
    • driver: 31 мая, 2013 в 13:57

      Здравствуйте.
      Посмотрите id модальных окон, т.е. идентификатор окна с формой должен соответствовать rel="popup_contact" в ссылке, и конечно jQuery плагин должен подключаться к каждой странице.

      Ответить
      • apocallipsis: 1 июня, 2013 в 09:46

        Подскажите пожалуйста, возможно ли как то прописать относительные пути? Потому что когда в ссылку вставляю что то типа:
        <a class=”poplight” rel=”popup_contact” href=”#?w=600″>Контакты — ссылка для вывода окна…
        То окно не открывается, даже на той странице, на которой было настроено… Хотя теоретически, это то же самое, если бы я прописал http://site.ru/#?w=600 либо http://site.ru/categoria/#?w=600
        Как исправить эту ошибку? Заранее благодарен!

        Ответить
  • apocallipsis: 31 мая, 2013 в 14:07

    ID окон прописан везде один и тот же (сам код модального окна и jQuery я разместил в компонентах, которые в свою очередь присутствует на всех страницах)
    В том то и беда, что я грешу скорей всего на пути прописанные тут:
    //Когда вы нажмете на ссылку с классом poplight и HREF начинается с a #
    $(‘a.poplight[href^=#]’).click (function () {
    var popID = $(this).attr (‘rel’); //Получить Popup Имя
    var popURL = $(this).attr (‘href’); //Получить Popup HREF и определить размер
    Конечно я могу ошибаться…

    Ответить
  • apocallipsis: 1 июня, 2013 в 09:59

    Почему то не обработалась у вас на сайте ссылка… Должна быть вида: «a class=»poplight” rel=”popup_contact” href=”знак?пхп get_site_url ();/>#?w=402″>Контакты</aзнак
    Как то так

    Ответить
    • driver: 1 июня, 2013 в 22:07

      Добрый вечер.
      Что то вы кода наворотили, даже мой, привыкший ко многому мозг, стал по тихому воспаляться.
      атрибут href="#?w=600" выступает в качестве сигнала к обработчику, а не как привычный адрес.
      Что мешает вам на этих трех страницах прописать html каркас модального окна, коль из компонентов оно не срабатывает. Да и вообще, мне на уровне телепатии сложно что то подсказывать.
      Как вариант, присмотритесь к еще одной моей контактной форме. Выполнена она на CSS3 и работает как отдельное всплывающее окно: Тынц >>
      Надеюсь, что с ней будет проще разобраться, так как форма и есть модальное окно, и нет надобности подключать дополнительные jQuery плагины.

      Ответить
      • apocallipsis: 2 июня, 2013 в 00:49

        Спасибо за ответ, постараюсь впредь точнее выражать свои мысли

        Ответить
      • apocallipsis: 2 июня, 2013 в 12:00

        Еще раз извиняюсь за свою невнимательность, модальное окно работает идеально!!! Сам просто накосячил- забыл на других страницах разместить вывод самого окна )))) Спасибо еще раз!

        Ответить
  • Ласось: 8 июля, 2013 в 21:29

    Всем привет.
    Отличный скрипт только валидации не хватает, буду очень признателен автору если подскажет как это сделать ).

    Ответить
    • driver: 9 июля, 2013 в 00:23

      Здравствуйте!
      Никто и ничего не мешает найти готовую форму с валидацией, например на jQuery и запихнуть ее в модальное окно, как расписано в статье, или написать скрипт jQuery самому, примерно так: Тынц.

      Ответить
  • Антон: 27 августа, 2013 в 00:47

    Очень удобная форма, но не получается до конца настроить на шаблон. При нажатии на кнопку — всплывает серая форма, где ввод данных невозможен.
    Ссылка по кнопке — Program Management слева
    http://www.new.uspectech.ru/index_2.html
    Можете подсказать, как исправить?

    Ответить
    • driver: 13 сентября, 2013 в 02:18

      Антон. Измените в style.css значение свойства z-index для #fade например на 1.

      Ответить
  • Антон: 9 ноября, 2013 в 17:17

    Огромное СПАСИБО!
    Не первый раз пользуюсь!

    Ответить
    • driver: 9 ноября, 2013 в 19:29

      Рад, что вам пригодились мои наработки.

      Ответить
  • Игорь: 10 ноября, 2013 в 23:01

    Не пойму, а где прописать адрес, куда письма отсылать?

    Ответить
  • driver: 12 ноября, 2013 в 13:28

    Игорь.
    В комментариях есть ответы на ваш вопрос: Тынц >>

    Ответить
  • Артем: 13 ноября, 2013 в 22:15

    огромное спасибо, а как и какой скрипт отсылки информации на мыло к этой форме прикрутить, два дня бьюсь и не могу ничего толкового приделать, не работает ничего …

    Ответить
    • driver: 13 ноября, 2013 в 22:50

      В комментариях выше есть ответы на все ваши вопросы.

      Ответить
  • Max: 6 ноября, 2014 в 01:04

    Здравствуете. Столкнулся с тем, что нужна форма с возможностью добавления файла и наличием дополнительных обязательных полей. И решил тоже сделать в модальном окне так вот не задача, если форма заполнена некорректно модальное окно после нажатия кнопки отправить закрывается и «с виду» для пользователя все хорошо, а данные из формы не передаются.Как можно вернуть пользователя к дальнейшему «правильному» заполнению полей формы. И возможно ли это вообще?

    Ответить
    • driver: 6 ноября, 2014 в 02:35

      Здравствуйте, Max.
      Самым очевидным, на мой взгляд решением, будет использование валидации полей формы с помощью jQuey, в этом случае сообщения выдаются непосредственно в пределах самой формы и не требуется перезагрузка страницы. существуют масса решений валидации форм на jQuey, соответственно и сам php-обработчик должен быть заточен под это самое дело.
      В сущности за меня всё уже ответили, спасибо Eli.
      Простейший пример:

      <script>
      $(document).ready(function() {
      $(“.img_button”).click(function(){
      ver=true;
      first_name=$(“#first_name”).val();
      var p=/^[a-z0-9_.-]{3,35}$/i;
      if(!p.test(first_name)){
      message_a=”Некорректное имя”;
      ver=false;
       
      }
      email=$(“#email”).val();
      var p=/^[a-z0-9_.-]+@([a-z0-9-]+.)+[a-z]{2,4}$/i;
      if(!p.test(email)){
      message_a=”The email is incorrect!”;
      ver=false;
      }
       
      message=$(“#message”).val();
      var p=/^[a-z0-9_.-]{30,250}$/i;
      if(!p.test(message)){
      message_a=”The message is incorrect or empty!”;
      ver=false;
      }
      if(ver){
      return true;
      }else{
      alert(message_a);
      return false;
      }
      });
      });
       
      </script>
      <script>
      $(document).ready(function() {
      $(“.img_button”).click(function(){
      ver=true;
      first_name=$(“#first_name”).val();
      var p=/^[a-z0-9_.-]{3,35}$/i;
      if(!p.test(first_name)){
      message_a=”Некорректное имя”;
      ver=false;
      }
      email=$(“#email”).val();
      var p=/^[a-z0-9_.-]+@([a-z0-9-]+.)+[a-z]{2,4}$/i;
      if(!p.test(email)){
      message_a=”The email is incorrect!”;
      ver=false;
      }
      message=$(“#message”).val();
      var p=/^[a-z0-9_.-]{30,250}$/i;
      if(!p.test(message)){
      message_a=”The message is incorrect or empty!”;
      ver=false;
      }
      if(ver){
      return true;
      }else{
      alert(message_a);
      return false;
      }
      });
      });
      </script>

      для полей с «обычным» именем пользователя, где разрешена кириллица и латиница (а также пробелы, числа и тире), возможна следующая проверка:

      name=$(“#username”).val();
      var p=/^[а-яА-ЯёЁa-zA-Z0-9 -]{5,35}$/i;
      if(!p.test(name)){
      alert(“error”);
      }
      name=$(“#username”).val();
      var p=/^[а-яА-ЯёЁa-zA-Z0-9 -]{5,35}$/i;
      if(!p.test(name)){
      alert(“error”);
      }

      Ответить
  • Eli: 6 ноября, 2014 в 01:22

    Max, используйте ajax для проверки полей. Тогда можно сделать, чтоб форма не отправлялась, пока не будет заполнена правильно. Я пользуюсь этим скриптом livevalidation.com

    Ответить
  • Роман: 21 ноября, 2014 в 09:23

    Всё-таки, как сделать чтобы после нажатия кнопки «Отправить» , форма не закрывалась а сменялась надписью “Благодарим за отправку сообщения , мы свяжемся с вами и самозакрывалась по истечении 3 секунд либо выводила кнопку ОК которая закрывала бы форму.
    В идеале бы после нажатия отправить выводился прогресс бар с процентам до завершения отправки.

    Ответить
    • driver: 21 ноября, 2014 в 10:20

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

      Ответить
  • Андрей: 20 декабря, 2014 в 22:50

    Добрый день. Уже два дня пытаюсь все это прикрутить к WordPress. НИчего не выходит. Стили подключил в head (Убрав в css дисплай нон все отображается ок). Но прикрутив js нажав на кнопку окно не открывается.

    Ответить
    • driver: 21 декабря, 2014 в 01:10

      Доброго времени суток.
      В WordPress по умолчанию подключается jQuery последней версии, плагин модального окна построен на версии 1.4.1, отсюда конфликт и в итоге не работающая форма. Сейчас работаю чтобы исправить, а пока можете попробовать подключить:
      <script src="https://code.jquery.com/jquery-migrate-1.1.1.min.js"></script>
      или же как вариант использовать мод.форму без js на чистом CSS

      Ответить
  • driver: 21 декабря, 2014 в 04:11

    Плагин обновил, работает с актуальными версиями jQuery
    Проверьте правильность подключения рабочих файлов, тестировал на wp 4.1, работает)))

    Ответить
  • Женя: 17 февраля, 2015 в 16:08

    У меня наверное лыжи совсем не едут. А куда эта форма отправляет сообщение пользователя?

    Ответить
    • Женя: 17 февраля, 2015 в 16:34

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

      Ответить
      • Женя: 17 февраля, 2015 в 18:26

        Я разобрался. Может кому будет полезно.
        Изменения надо внести вот в эту часть кода
        <form id=”form” action=”send.php” method=”post”>
        Жирным я выделил название своего скрипта, у вас он может называться по другому.
        Ну и самый простой скрипт (тот самый который я назвал send.php):
        <?php
        $name = isset ($_POST[‘name’])?$_POST[‘name’]:”;
        $email = isset ($_POST[’email’])?$_POST[’email’]:”;
        $message = isset ($_POST[‘message’])?$_POST[‘message’]:”;
        $address = ‘ВАША ПОЧТА’;
        $sub = “Сообщение”;
        $mes = “Автор назвался: $name \nУказал свой адрес: $email \nТекст письма: $message”;
        $verify = mail ($address,$sub,$mes,”Content-type:text/plain; charset = utf-8\r\nFrom:$email”);
        if ($verify == ‘true’)
        {
        echo “Ок”;
        }
        else
        {
        echo «Нe ok»;
        }
        ?>

        Ответить
  • Анастасия: 26 марта, 2015 в 18:14

    Формочку адаптировала под свой дизайн. Красота получилась, ну просто «Версаль»! Решила протестировать — после заполнение полей и нажатия кнопки «отправить» появляется белый экран и больше ничего не происходит. Файл send.php как у Жени в комментариях я сделала и выложила в корень сайта, свой e-mail в файле прописала. Может быть откроете великую тайну — как эту красоту реализовать полностью до конца?
    Я художник и очень много времени потратила на создание сайта. Реализовала все о чем мечтала, кроме модального окна с формой обратной связи… Помогите пожалуйста.

    Ответить
    • driver: 26 марта, 2015 в 23:12

      Анастасия,
      Скинул вам на мыло архив с обработчиком и небольшой инструкцией.

      Ответить
    • NeedHate: 27 марта, 2015 в 01:28

      Анастасия, покажите Версаль захудалым селянам! )

      Ответить
  • Дмитрий: 26 марта, 2015 в 20:44

    Анастасия, у вас делается проброс на пустой (не существующий) обработчик. Данная форма- это всего лишь макет, для того чтобы он у вас заработал- нужно использовать обработчик. Как вариант могу предложить вот этот вариант: ruseller.com

    Ответить
  • Анастасия: 28 марта, 2015 в 12:18

    Андрей, спасибо Вам огромное за помощь! Теперь все получилось, ну просто дух захватывает, как здоровско! Сожалею, что не могу словами выразить все те восторженные чувства которые испытываю сейчас! Восхищаюсь вашей профессией, программисты для меня — просто БОГИ!!!

    Ответить
  • Марина: 12 мая, 2015 в 16:05

    Добрый день!
    У меня не работает никак. И html, и css, и js залила, прописала. Что я делаю не так? Даже форма по нажатюю не появляется
    Ссылка «нажми меняя»: shik34.ru

    Ответить
    • driver: 12 мая, 2015 в 19:48

      День добрый!
      И не будет работать, у вас отсутствует div-контейнер модального окна с формой (см. раздел HTML в уроке). Пропишите блок модального окна сразу после тега <body> или перед закрывающим тегом </body> В Drupal 7
      работаете с файлом page.tpl.php

      Ответить
  • Александр: 19 августа, 2015 в 18:34

    Андрей, здравствуйте.
    Помогите, пожалуйста. Подскажите как изменить стиль написания и текст кнопки «Отправить»?
    Все остальное я подкорректировал в CSS, а это не могу.
    У вас в html только это,
    <p class="submit"><button type="submit">Send</button></p>
    а в css по классу submit ничего нет. Я пробовал добавить свойства, но белый цвет надписи и шрифт не меняется.
    Заранее спасибо!

    Ответить
    • Александр: 19 августа, 2015 в 19:33

      Упс… разобрался)))

      Ответить
      • driver: 19 августа, 2015 в 21:52

        Очень рад за вас))

        Ответить
  • Сергей: 8 ноября, 2015 в 19:35

    Добрый день!
    Спасибо за подробный урок. Все сделал. Работает. Для отправки использую файл mail.php.
    Письма приходят, но с кодировкой проблемы. Приходят иероглифы 🙁 А еще хотелось бы, чтобы форма после нажатия на кнопку закрывалась. А сейчас просто показывает «Спасибо» и тоже иероглифами.
    Спасибо!!!

    Ответить
    • driver: 8 ноября, 2015 в 22:55

      Здравствуйте, Сергей.
      По поводу кодировок, перво на перво проверьте кодировку ваших файлов, формы и самого файла mail.php, вдруг файл-обработчик на серваке у вас лежит в кодировке ANSI (Windows-1251), а общая кодировка вашего сайта UTF-8. Если так, то преобразуйте с помощью того же Notepad++ в UTF-8 без BOM, например. Не поможет, тогда копайте в сторону функций скрипта обработчика, в частности функции отправки сообщения, в которой указывается(если указана) явная кодировка, что-то типа:
      "Content-type: text/html; charset=\"utf-8\"";
      Но скорее всего, судя по тому, что сообщение после удачной отправки, выводится в битой кодировке, проблема всё же в несоответствии кодировок самих файлов.
      Что касается закрытия окна после нажатия кнопки «Отправить», достаточно внести изменения в dm-modal.js. Найдите строку
      $(document).on('click', 'a.close, #fade', function() { //закрытие по клику вне окна, т.е. по фону...
      и добавьте селектор css с нашей кнопой #form button к событию по клику, получится должно следующее:
      $(document).on('click', 'a.close, #fade, #form button', function() { //закрытие по клику вне окна, т.е. по фону...
      Комментарии в фрагменты кода включил для лучшей ориентации))) Если всё сделаете правильно, всё должно сработать в лучшем виде, хотя как поведёт себя ваш обработчик, сможете увидеть только на деле.

      Ответить
  • Сергей: 9 ноября, 2015 в 17:54

    Огромное спасибо! Проблема действительно была в том, что php файл был в другой кодировке. Поменял и письмо пришло уже с русскими буквами!
    Что касается закрытия формы после отправки: добавил #form button в нужное место в коде. Спасибо за детальные пояснения! Все заработало! Форма закрывается после нажатия на кнопку. Но письма приходить перестали 🙁 В чем может быть дело?
    Спасибо!!!

    Ответить
    • driver: 9 ноября, 2015 в 19:25

      Здравствуйте, Сергей.
      Трудно в слепую строить догадки, но скорее всего письма перестали отправляться из за того, что наделив кнопку отправки функцией закрытия окна, прервали завершение полного цикла обработчика. Сообщение об успешной отправке(«Спасибо»), я так понимаю, тоже не выводится?
      Что могу посоветовать? Да хз, логично сделать задержку перед закрытием. Всё там же в dm-modal.js, прямо перед .fadeOut пропишите .delay(3000), задержка будет равна трём секундам. Не прокатит, попробуйте увеличить интервал до 5 секунд(5000), хотя это уже какая-то галиматья получается. Ещё, как вариант, можете вовсе исключить из обработчика функцию вывода сообщения об отправке, тупо её закомментировав.
      Попытки лечить больного не видя его, чаще всего не дают результата. Так что извиняйте)).

      Ответить
  • Сергей: 9 ноября, 2015 в 21:02

    Добрый вечер! 🙂
    Вы правы, сообщения об успешной отправке тоже не выводятся. Сделал как посоветовали. Прописал задержку, из php файла убрал вывод сообщений, но результат тот же.
    Понимаю, что и так уже много мне помогли и подсказали. Но без помощи похоже не продвинусь. Указал сайт (там пока всего лишь кнопку эту обкатываю) и прикладываю код php файла.
    Если будет желание и время, то взгляните, пожалуйста! В любом случае спасибо!!!
    mail.php
    <?php $name = $_POST['name'];
    $email = $_POST['email'];
    $formcontent=" От: $name n Телефон: $email n";
    $recipient = "mail@mail.com";
    $subject = "Заявка с сайта"; $info = mail($recipient, $subject, $formcontent); ?>

    Ответить
    • driver: 9 ноября, 2015 в 22:31

      Да, дело не в задержке, можете смело её убрать(затея была ни о чём), тоже самое и с #form button из события по клику, раз существует конфликт с обработкой вашей формы. Короче, пока вернитесь к исходникам, в принципе ничего страшного не произойдёт, если пользователь закроет окошко по кнопе закрытия после отправки данных, для этого она и существует в принципе))). Обработчик у вас какой-то урезанный, к нему бы ещё и конфигурационный файлик должен быть, или я ошибаюсь?
      В ближайшее время поэкспериментирую с другим php-скриптом и обязательно вам отпишусь.
      А пока — удачи!

      Ответить
      • Сергей: 10 ноября, 2015 в 13:38

        Единственный вопрос у меня остался: в принципе если пользователь закроет окно по крестику — ок. Но меня при нажатии на кнопку «отправить» выбрасывает на страницу «mail.php». А как сделать так, чтобы оставался на странице с формой?
        Спасибо!!!

        Ответить
  • Сергей: 10 ноября, 2015 в 11:54

    Доброе утро!
    Да обработчик сам написал 🙂 Может и должен быть конфигурационный файл 🙂
    В любом случае, сейчас уже у меня в общем-то рабочая форма. Вам огромное спасибо!!!

    Ответить
  • Анатолий: 2 ноября, 2016 в 16:19

    Здравствуйте, подскажите пожалуйста, я использую Ваш скрипт но у меня возникла проблема=(
    Дело в том что я использую свою форму, но при открытии Мод.Окна у меня форма отображается по верх модального окна и не могу настроить высоту у мод. окна у формы высота в порядке а вот у мод. окна нет=(…

    Ответить

Оставить комментарий

Ваш email не будет опубликован.

Вы можете использовать следующие HTML тэги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>