Всплывающее модальное окно с затемнением на JQuery + PHP

14 ноября 2014 | Автор: | Категория: JQuery и PHP

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

Модальное окно

Я решил попробовать сам реализовать что-то подобное и сегодня расскажу и покажу, что у меня получилось.





Для реализации popup окна при первом посещении сайта нужно подключить следующие js-файлы:

<script type='text/javascript' src='js/jquery.js'></script>
<script type='text/javascript' src='js/jquery.simplemodal.js'></script>
<script type='text/javascript' src="js/jquery.cookie.min.js"></script>
<script type='text/javascript' src='js/basic.js'></script>

где:
jquery.js — библиотека jQuery;
jquery.simplemodal.js — jQuery плагин для создания модального окна;
jquery.cookie.min.js — jQuery плагин для работы с кукисами на стороне клиента;
basic.js — проверка cookie. Если не установлена, то показываем модальное окно и устанавливаем cookie.

Содержимое файла basic.js:

(function($) {
$(function() {
 
  if (!$.cookie('pop_up')) {
   $('#basic-modal-content').modal();
  }
 
  $.cookie('pop_up', true, {
    expires: 365,
    path: '/'
  });
 
})
})(jQuery)

Во всплывающем окне будет выводится картинка, небольшой текст и форма для ввода данных: имя подписчика и email.

<div id="basic-modal-content">
<table>
<tr><td><img src="img/seobook.jpg" width="150px" height="192px" align="left" /></td><td> 
Подпишитесь на рассылку и получите бесплатно книгу "<font color="red">SEO поисковая оптимизация от А до Я</font>".
</td></tr>
</table>
<center>
<form id="scf-form" action="write.php" method="POST">
<p><input type="text" name="scf-name" class="txt" id="scf-name" placeholder="Ваше Имя" /></p>
<p><input type="email" name="scf-email" class="txt" id="scf-email" placeholder="Ваш E-mail" /></p>
<p><input id="submit" type="submit" value="Подписаться" name="submit" /></p>
<div id="success"></div>
</form>
</center>
</div>

После ввода данных выполняется скрипт write.php:

<?php
$user_email = $_POST['scf-email'];
$user_email = trim($user_email);
if (!filter_var($user_email, FILTER_VALIDATE_EMAIL)) {
    echo "Введите корректный e-mail";
} else {
$fp = @fopen("test.txt","a");
fwrite($fp, $_POST['scf-name'].":".$_POST['scf-email']."\n");
fclose($fp);
echo '<a href="" style="color:#00137F;">Cкачать PDF</a>';
}
?>

В php-скрипте выполняется проверка — корректно ли введён email-адрес, затем введённые данные записываются в текстовый файл и в модальном окне выводится ссылка на скачку файла.

За отправку формы без перезагрузки отвечает следующий jQuery скрипт:

<script>
        $(document).ready(function(){
            $('#submit').click(function(){
                $.post("write.php", $("#scf-form").serialize(),  function(response) {
                    $('#success').html(response);
                });
 
                return false;
            });
 
        });
    </script>

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

Как работает скрипт можно посмотреть здесь.

Скачать все файлы примера JQuery_Example5.zip




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

Метки: 

5 комментариев к "Всплывающее модальное окно с затемнением на JQuery + PHP"

  1. Игорь | 25 октября 2014 @ 0:39
  2. Спасибо, коллега! Перепробовал все плагины попапов для WP — все лажа. Сделал на вашем примере — и все прекрасно работает!

    Ответить

  3. seogrot | 25 октября 2014 @ 16:08
  4. Рад, что кому-то пригодилось!

    Ответить

  5. Евгений | 9 марта 2015 @ 23:48
  6. А как долго хранятся куки? То есть, когда после первого посещения появится окно еще раз?

    Ответить

    • seogrot | 16 марта 2015 @ 21:45
    • В данном примере время жизни куки 365 дней либо пока юзер не почистит куки;)

      Ответить

  7. Ermite | 5 декабря 2015 @ 22:35
  8. Долго искал что-то подобное, но этот скрипт подошел идеально! Спасибо)

    Ответить

Добавить комментарий для Игорь Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *