Универсальный скрипт формы обратной связи для сайта на jQuery AJAX

Форма обратной связи для сайта на jQuery AJAX Привет друзья! Наконец-то, после десятка писем на почту с просьбой поделиться скриптом, решил рассказать вам про свой универсальный скрипт формы обратной связи, который работает на AJAX, имеет встроенную проверку полей формы на валидность и подойдет для любого сайта на любом движке, или даже на чистом html.

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

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

Форма обратной связи alaev.info

Итак, речь идет вот об этой штуковине --->

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

Приступаем к делу. Чтобы получить такую же форму, вам потребуется выполнить два пункта — установка и настройка — они описаны ниже.

Архивы contactable UTF-8 и Windows-1251

Для сайта с кодировкой UTF-8: contactable.zip
Для сайта с кодировкой windows-1251: contactable_cp1251.zip

Как узнать кодировку своего сайта? Открываем сайт в браузере, нажимаем Ctrl+U (Просмотр исходного кода) и в самом начале находим строку:

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
или
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

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

Как установить форму обратной связи?

В следующем разделе отдельно представлена установка для CMS WordPress.

Установка проходит в 7 шагов:

  1. Скачиваем архив в нужной кодировке и распаковываем.
  2. Вносим изменения в файлы mail.php и jquery.contactable.js (см. раздел настройка ниже).
  3. Папку contactable и все ее содержимое закидываем на сервер в удобное для вас место.
  4. В шаблоне своего сайта между тегами <head> и </head> вставляем следующий код:
    <link rel="stylesheet" href="http://site.ru/your/path/contactable/contactable.css" type="text/css" />
    где, http://site.ru/your/path/ надо заменить на путь к директории /contactable/ на вашем сервере.
  5. В шаблоне своего сайта ПОСЛЕ открывающего тега <body> вставляем следующий код:
    <div id="contactable"><!-- contactable html placeholder --></div>
  6. В шаблоне своего сайта ПЕРЕД закрывающим тегом </body> вставляем следующий код:
    <!--start contactable js -->
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js?ver=1.7.1"></script>
    <script type="text/javascript" src="http://site.ru/your/path/contactable/jquery.validate.min.js"></script>
    <script type="text/javascript" src="http://site.ru/your/path/contactable/jquery.contactable.js"></script>
    <script type="text/javascript">$(function(){$('#contactable').contactable();});</script>
    <!--end contactable js -->

    где, http://site.ru/your/path/ надо заменить на путь к директории contactable/ на вашем сервере.

    Очень важный момент! Если у вас на сайте уже подключена библиотека jQuery (а в большинстве случаев это так), то второй раз подключать ее нельзя. В таком случае в коде выше надо убрать строку:

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js?ver=1.7.1"></script>
    Иначе могут возникнуть конфликты — или форма не заработает, или сайт может «развалиться».
  7. Сохраняем файл шаблона. Обновляем любую страницу сайта и начинаем тестировать форму обратной связи!

Все готово!

Установка формы обратной связи для сайта на WordPress

Решил отдельно написать о том, как более удобно и правильно подключить данный скрипт для блога на движке WordPress.

  1. Скачиваем архив. WordPress по умолчанию представлен в кодировке UTF-8, по этому не ошибитесь с архивом ;)
  2. Редактируем файлы mail.php и jquery.contactable.js (см. раздел настройка ниже).
  3. Папку contactable вместе с содержимым заливаем в папку на сервере /wp-content/plugins/. То есть должно получиться так /wp-content/plugins/contactable/
  4. Идем в админке во «Внешний вид» -> «Редактор», выбираем файл header.php, находим там </head> и ВЫШЕ вставляем:
    <script type="text/javascript">$(document).ready(function(){$('#contactable').contactable();});</script>
    Жмем «Обновить файл»;
  5. Там же в редакторе открываем файл functions.php и в самый конец, перед ?> вставляем:
    /*** Добавляем в wp_head свои css ***/
    	function my_css() {
    		echo '<link rel="stylesheet" type="text/css" href="http://site.ru/wp-content/plugins/contactable/contactable.css" media="screen" />'."\n";
    	}
    	add_action('wp_head', 'my_css', 5);

    где, http://site.ru/ надо заменить на адрес своего сайта.

    Данной функцией мы добавим в <head> </head> css файл стилей формы.

    Далее, опять же перед ?> вставляем:

    /*** Добавляем в wp_head свои js скрипты ***/
    	if( !is_admin()){
    		wp_deregister_script('jquery');
    		wp_register_script('jquery', ("http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"), false, '1.7.1');
    		wp_enqueue_script('jquery');
    		wp_enqueue_script('validate', '/wp-content/plugins/contactable/jquery.validate.min.js', 'jquery', '1.8.0');
    		wp_enqueue_script('contactable', '/wp-content/plugins/contactable/jquery.contactable.js', 'jquery', '1.2.1');
    	}

    Этим кодом мы делаем следущее: на всех страницах (кроме админки) мы отключаем стандартную вордпрессовскую библиотеку jquery, а вместо нее подключаем самую новую с серверов Гугла (не переживайте на счет того, что js будет подгружаться с внешнего сервера, во-первых, сервера Гугла самые надежные в мире, во-вторых, мы даже немного снизим нагрузку на свой сервер); далее после подключения jquery, сразу подключаются два js-скрипта формы связи с условием их поключения строго после jquery (это тот случай, когда порядок подключения скриптов имеет больше значение, и если не подключить jquery перед скриптами формы, то форма не заработает).

    Жмем «Обновить файл».
  6. Очищаем кеш, если у вас установлен плагин WP Super Cache или подобный.
  7. Обновляем любую страницу своего блога и видимо форму ;)

Как видите, ничего сложного в установке нет.

Настройка формы

Перед тем как заливать файлы из архива к себе на сервер (третий шаг установки), надо внести в них некоторые правки.

  1. Открываем файл jquery.contactable.js и находим там следующий код:
    		var defaults = {
    			url: 'http://site.ru/your/path/contactable/mail.php',
    			name: 'Ваше имя',
    			email: 'Ваш E-mail',
    			message : 'Сообщение',
    			subject : 'Feedback from MySite',
                		page : location.href,
    			submit : 'Отправить письмо',
    			recievedMsg : 'Благодарю вас за письмо',
    			notRecievedMsg : 'Извините, но при отправке письма произошла ошибка, попробуйте позже',
    			disclaimer: 'Пожалуйста, не стесняйтесь отправлять сообщения. Я буду очень признателен за все отзывы и с радостью отвечу на все ваши вопросы!',
    			hideOnSubmit: true
     
    		};
    Как минимум нам надо изменить для переменной url путь к директории contactable/ на вашем сервере. Эта процедура аналогична четвертому пункту установки. Остальные переменные можете изменять по своему усмотрению.
  2. Открываем файл mail.php и находим там следующий код:
    	$contactMessage =
    "Имя отправителя: $name <$emailAddr>
     
    $comment
     
    Письмо отправлено со страницы: $page
    IP отправителя: $_SERVER[REMOTE_ADDR]";
     
    		//send the email
    		mail('admin@site.ru', $subject, $contactMessage, $headers);
    Здесь вам необходимо прописать свой контактный e-mail, на который будут сыпаться письма. То есть заменяем admin@site.ru на свой ящик.
    Переменная $contactMessage содержит шаблон письма, которое вы будет получать. По умолчанию в шаблоне присутствуют имя и ящик отправителя, само сообщение, страница с которой было отправлено письмо (мне показалось, что это интересная информация для анализа) и IP адрес. Все это можете отредактировать как вам захочется.
  3. По желанию можете изменять внешний вид самой формы, ее цвета и т.д., все css-стили хранятся в файле contactable.css
  4. На этом настройка завершена.

Всякие дополнительные фишки

  1. Если вы хотите, чтобы после отправки сообщения показывалось не только «Спасибо за письмо», но и происходило перемещение пользователя на заданную страницу, необходимо проделать следующее:
    Открываем файл jquery.contactable.js и находим:

    			$(this_id_prefix+'#callback').show().append(options.recievedMsg);

    и НИЖЕ добавляем:

    			document.location.href="http://alaev.info";
    где нужно вместо http://alaev.info прописать адрес вашей страницы, куда вы хотите переместить пользователя.

Что еще стоит сказать про этот скрипт?

  • Форма обратной связи с капчей уже не рулит, потому что данный скрипт работает только при включенном javascript, а у ботов он выключен, соответственно пользователям никакую капчу вводить не придется, а у вас не будет спама.
  • После установки у вас может возникнуть проблема с кодировкой, поэтому проследите, что вы скачали подходящий архив (я специально подготовил две версии для скачиваиня). Сохраняйте файлы после редактирования в правильной кодировке (в большинстве случаев принудительно указывать кодировку не придется, но мало ли).
  • На вопрос «А как сделать чтобы это было справа, а не слева?» отвечаю сразу — исходники открыты, колупайте на здоровье!
  • Да, эта форма обратной связи не поддерживает аттачи. Но я считаю, что этого и не надо.
  • А как сделать, чтобы после отправки сообщения форма не исчезала и можно было отправить еще одно сообщение без перезагрузки страницы? Ответ — никак!
  • Пока все, но я буду добавлять сюда интересные вопросы из ваших комментариев, чтобы другие их больше не задавали ;)

Вот и все, надеюсь, для вашего сайта эта форма пригодится, пользуйтесь на здоровье!

У вас что-то не работает? Форма не отображается или отображается криво? Не выезжает и не заезжает обратно? Не устраивает стиль и внешний вид?
Нет проблем! За умеренную плату в 500р мой специалист поможет решить любые проблемы и устранить все ошибки!
На подобные вопросы в комментариях автор поста (то есть Я) не отвечает.
С уважением, Александр Алаев
Опубликовано 17 октября 2011
Ерунда и баянПолезный пост
+16
 
Новогодние скидки 15% на все услуги команды АлаичЪ'а и на комплексный SEO аудит сайта!
Получай новости блога АлаичЪ'а на e-mail:
Подпишись на новые комментарии к записи:
 
 
Другие посты из категории CMS & Кодинг:
Что нового на форуме:
  1. Anon (4 комм.)

    >> между тегами <body> и </body> вставляем следующий код

    Тэг link никогда не ставится в body. Люди, которым важна скорость загрузки, скрипты ставят в футер, чтобы грузились они после отрисовки страницы и не тормозили ее.

    • АлаичЪ

      Ну да, код можно разделить на две части, скрипты в футер, а вызов div с id в хедер.

      А вообще замечание верное, обновил пост ;)

      • Anon (4 комм.)

        Так не будет работать. Вызов функции contactable () должен идти последним.

        То есть:

        1. стиль — в head;

        2. div куда угодно в body;

        3. скрипты перед закрывающим body в таком порядке:

        — jquery.min.js

        — jquery.validate.min.js

        — jquery.contactable.js

        — и потом уже $('#contactable').contactable ();

  2. Александр (2 комм.)

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

  3. Maxim (2 комм.)

    Я так понимаю данный скрипт работает сам по себе и можно его прикрутить к любому CMS?

    • АлаичЪ

      Да, можно прикрутить не только к любой CMS, но лучше сказать, что можно прикрутить вообще куда угодно, лишь бы хостинг php поддерживал.

  4. Maxim (2 комм.)

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

    "Если нашли ошибку, нажмите сюда и сообщите" — вот эту надпись сделать кликабельной. Т.е. чтобы при нажатии на нее вылезала форма.

    • АлаичЪ

      Если я правильно понял, то вам достаточно заменить надпись "Feedback" на "Если нашли ошибку нажмите сюда и сообщите". Но это уже фигня какая-то получится. Проще тогда специальным сервисом для этого воспользоваться — http://orphus.ru/, там все гораздо удобнее для ваших целей!

  5. Дмитрий (1 комм.)

    Пытаюсь добавить на сайт, пилил 2 дня. Допилил, вроде отправляет.

    Но вот проблема: После отправки письма кидает на страницу "mail.php", а там 1 слово "success". Кто может помочь?

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

    • Anon (4 комм.)

      >> сообщение об успехе должно выводиться в той же форме отправки.

      Это было бы глупо. Если сообщение отправлено, то форма уже не нужна. Найдите слово «Success» в jquery.contactable.js и замените его на свой html. Если сайт на Wordpress и многоязычный, то используйте /wp-includes/js/l10n.js, который грузится по умолчанию. Google в помощь.

  6. labounch (5 комм.)

    Привет!!! Установил я форму обратной связи, но шаблон перекосило, сцуко (ощущение, как будто блокировали работу основных java-скриптов — галерея перестала работать и т.д.).

    На перекос шаблона влияет эта строка в коде:

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>

    Я так понимаю, что получается какой-то конфликт между скриптами, потому как шаб навороченный уж чересчур...

    Может кто сталкивался? В Java не силен я вовсе. Помогите, ребят, с этой проблемой...

    • АлаичЪ

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

      • labounch (5 комм.)

        Пробовал, тогда feedback не подгружается совсем. Как же быть...? У меня сайт на CMS joomla, существует модуль feedback, но, он немного кривоват, периодически тормозит по ходу своего "выдвижения"... А Ваш вчера тестил — понравилось!

        • marina (6 комм.)

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

          Уберите внешние файлы jquery (типа http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js). Скачайте библиотеку jquery отсюда: http://docs.jquery.com/Downloading_jQuery. Кидайте на сервер и подключите ее на свою страницу с плагинами.

          У меня все сразу нормально заработало. Удачи!

          И еще раз спасибо Александру за замечательный скрипт формы! Красиво и удобно.

          • labounch (5 комм.)

            Сделал как Вы написали: заменил строчку подключения внешнего jquery на подключение из папки на сервере (скрипт скачал версии jquery-1.3.min.js). Такая же лажа...

            А в другом шаблоне joomla вообще html файла нет. Там через warp шаблон работает. Вот и думай куда код прописать!?

            Или я опять все преувеличиваю :)

            • marina (6 комм.)

              Я скачивала jquery-1.7.1.min.js. Насколько я правильно поняла, у них там все версии постоянно обновляются, а эта — последняя. Все сразу на места встало. Хотите, ссылку дам — посмотрите. А файл я прописала в <head>.

              • labounch (5 комм.)

                Скачал последнюю версию jquery-1.7.1.min.js — панелька выезжает, но сайт принципиально не хочет с панелькой дружить. Скорее происходит какой то конфликт скриптов. Не знаю в общем, что происходит... Если будет полезная информация по этому вопросу пожалуйста поделитесь. Спасибо!

                • marina (6 комм.)

                  А Вы все внешние подключения jquery на странице удалили? У меня все плагины работают на 1.7.1. А когда было 3 штуки разных — для каждого плагина свой внешний файл, все и разваливалось.

                  • labounch (5 комм.)

                    А вот и не знаю... Не смотрел. Значит, лучше все запросы на внешнее подключение скриптов убрать? Чтот даже и не подумал про это... попробую отключить внешку, может, что и получится-)

                    • Anon (1 комм.)

                      1. JQuery должна грузиться ДО всех скриптов, использующих ее. Вне зависимости внешние они или локальные. Проверьте порядок загрузки.

                      2. Попробуйте заменить вызов

                      $(function (){$('#contactable').contactable ();});

                      на

                      jQuery (document).ready (function ($) {$('#contactable').contactable ();});

                      3. Если используется другая библиотека, например, Prototype, то inline-скрипт может с ней конфликтовать. Но не в случае, упомянутом выше (2).

                    • Lonely_Virus (5 комм.)

                      У меня был конфликт слайдера с этой Обратной связью — коробило сайт и не работал слайдер.

                      Я решил эту проблему следующим образом:

                      Скопировал ***.js который крутил слайдер, в начало файла "jquery-1.7.1.min.js".

                      Как ни странно, все заработало!

                      Надеюсь, если у кого конфликты скриптов, попробуйте скопировать текст вашего скрипта в "jquery-1.7.1.min.js".

                      Автору Обратной связи — Респект за труд!

  7. fobic (4 комм.)

    Привет. Перво-наперво спасибо за форму. Вот только раскорячило у меня поле "Ваше имя" на сайте hypalon.ru. Где искать баг?

    • АлаичЪ

      Скорее всего надо смотреть стили css.

      • fobic (4 комм.)

        Спасибо, допилили и поставили. Вот только у сайта есть алиас и когда отправляет с него, то пишет "...попробуйте позже..."

        • АлаичЪ

          Не понял...

          • fobic (4 комм.)

            Есть сайт site1.ru, у сайта есть алиас site2.ru, когда отправляешь форму с первого, то пишет, что отправлено, а со второго, что "...попробуйте позже".

            P.S Решил написанием относительного пути к contactable.js

            • АлаичЪ

              А какой смысл иметь одинаковые сайты на двух доменах? Логично сделать 301 редирект на один из них (основной) и никаких проблем ;)

              Хотя, конечно, может не так все и просто и разные домены сделаны специально, я не знаю...

  8. Bubamara (2 комм.)

    Сталкнулся с такой проблемой... Форма грузится, письма уходят, но почта пустая.

    Где искать проблему?

    • АлаичЪ

      А в файле mail.php свое мыло прописали?

      PS Проверьте на всякий случай папку спам, мало ли...

      • Bubamara (2 комм.)

        Да, мыло прописал. Пробывал мыльник и на своем сервере и на mail.ru. В спам папках пусто.

        • АлаичЪ

          Блин, тогда сложно сказать в чем дело, я не знаю :(

        • Сергей (1 комм.)

          В url: 'http://site.ru/your/path/contactable/mail.php', пропишите не полный путь, а относительный, т.е. url: '/contactable/mail.php'. В противном случае форма будет работать, если обращаетесь к сайту по адресу http://site.ru/, и не будет, если по http://www.site.ru/.

          • АлаичЪ

            Это проверенное наблюдение или лишь догадки?

            Я склоняюсь к тому, что это не может быть причиной неработы скрипта.

  9. Александр (2 комм.)

    Форма прикрутилась на сайт отлично. Но вот загвоздка. Не отправляются сообщения, хотя все поля заполнены. Вместо отправки пишет сообщение — "Извините, но при отправке письма произошла ошибка, попробуйте позже"

    В чем может быть причина. Сделал все так как вы описали.

    • АлаичЪ

      Если тестируете на локальном сервере, то там есть такая проблема.

      • Александр (2 комм.)

        Тестируется не на локальном сервере.

        Форма работает, а отправлять не хочет. Все права на файлы указаны верно. В httpacess тоже все прописано.

        Такое ощущение что в php файле пролетает условие. Вернее, скорей всего, в php файл ничего не приходит

        • АлаичЪ

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

  10. VCange (2 комм.)

    Работает в мозиле, хроме, опере — В Explorer версии 7 и 9 отказывается, все выезжает нормально, но страница сдвигается, отображается форма не полность и т.д.

    Но если открыть вашу страницу http://alaev.info/blog/post/2681 , то все идиально.

    АВТОР В ЧЕМ СЕКРЕТ У ВАС? Ничего не менял в скриптах, просто залил, почему в Explorer коряво отоброжается? Спасибо за ответ!

    • АлаичЪ

      Нет никакого секрета, 99% вероятность ошибки в ваших css-стилях.

      А на счет IE — в старых версиях не поддерживается абсолютное позиционирование, но в этом случае и на моем блоге будет такая проблема.

    • Anneta (1 комм.)

      Была такая же проблема.

      В файле css продублировала хаки для ie6 (например: *position:absolute;) хаками для всех ie (//position:absolute;)

      И форма заработала как нужно =)

  11. PNG (5 комм.)

    XenForo, при попытке редактирования шаблона, выдает ошибку синтаксиса в строке

    "<script type="text/javascript">$(function (){$('#contactable').contactable ();});</script>".

    Как исправить, подскажите...

    • PNG (5 комм.)

      Разобрался!

      Если у кого-нибудь будет подобная проблема, делайте так:

      <script type="text/javascript">

      $(function (){

      $('#contactable').contactable ();

      });

      </script>

  12. VCange (2 комм.)

    В архиве все файлы в UTF-8, вы могли бы залить еще и для windows-1251. Мучаюсь какой день, не могу перекодировать. Поместите в архив файлы для обеих кодировок, или залейте еще один архив.

    • fobic (4 комм.)

      Notepad++ отлично перекодирует и http://www.artlebedev.ru/tools/decoder/ вроде тоже

      • АлаичЪ

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

        Но все равно в пост добавил еще один архив для cp-1251 кодировки.

  13. Lonely_Virus (5 комм.)

    Такс... А у меня появилась проблема: Письма приходят, сам текст в письме читаемый, а От кого и Тема письма кракозябры :(

    В чем может быть проблема?

  14. Brendmaster (12 комм.)

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

    • Brendmaster (12 комм.)

      Все заработало. Дело в том, что я добавил поле телефон, только вот оно добавилось, а работать не захотело.

      • Brendmaster (12 комм.)

        Может есть способ правильно прописать поле телефон чтобы все корректно работало?

        • Wizard (3 комм.)

          to Brendmaster

          Способ, для дополнительного поля, скажем, для телефона, есть пример тут: http://luali.ru

          Если коротко, то в форме mail.php пишем переменную $phone:

          <?php
          	//declare our assets
          	$name = stripcslashes ($_POST['name']);
          	$emailAddr = stripcslashes ($_POST['email']);
          	$phone = stripcslashes ($_POST['phone']);
          	$comment = stripcslashes ($_POST['message']);
          	$subject = stripcslashes ($_POST['subject']);
          		$page = stripcslashes ($_POST['page']);
          		$headers = "From: \"$name\" <$emailAddr>\r\n";
          	$headers .= "Content-type: text/plain; charset=UTF-8\r\n";
          	$contactMessage =
          "Имя отправителя: $name и его почтовый адрес $emailAddr
          Телефон для связи: $phone
           
          $comment
           
          Письмо отправлено со страницы: $page
          IP отправителя: $_SERVER[REMOTE_ADDR]";
           
          		//send the email
          		mail ('you@inbox.ru', $subject, $contactMessage, $headers);
          		echo ('success'); //return success callback
          ?>

          А в файле jquery.contactable.js:

          1. Надо добавить:

          			email: 'Ваш E-mail',
          			phone: 'Ваш номер телефона',
          			message : 'Сообщение',

          2. Воткнуть после поля почты вот эту строку:

          <p><label for="phone">'+options.phone+'<span class="red"> * </span></label><br /><input id="phone" class="contact" name="phone"/></p>

          Пример:

          <p><label for="email">'+options.email+' <span class="red"> * </span></label><br /><input id="email" class="contact" name="email" /></p><p><label for="phone">'+options.phone+'<span class="red"> * </span></label><br /><input id="phone" class="contact" name="phone"/></p>

          3. Добавить здесь:

          					name: {
          						required: true,
          						minlength: 2
          					},
          					phone: {
          						required: true,
          						minlength: 7
          					},
          					email: {
          						required: true,
          						email: true
          					},

          4. Вписать тут:

          				//set messages to appear inline
          					messages: {
          						name: "",
          						phone: "",
          						email: "",
          						message: ""
          					},

          5. Самое незаметное тут:

          data: {subject:options.subject, page:options.page, name:$(this_id_prefix+'#name').val (), email:$(this_id_prefix+'#email').val (), phone:$(this_id_prefix+'#phone').val (), message:$(this_id_prefix+'#message').val ()},

          6. У меня все работает и отправляется! Все красиво и удобно.

          Единственная загвоздка это отображение панели в долбаном IE...

    • Lonely_Virus (5 комм.)

      Да вот нет... Все работает! И письма приходят и форма обновляется...

      После отправки пишет то, что указали в jquery.contactable.js а именно в: (recievedMsg : 'Благодарим вас за сообщение',).

      Единственно, была проблема, скрипт писал «Отправка невозможна». Из-за прав доступа к файлу mail.php, изменил права и заработал.

      Но теперь проблема в кодировке. И что странно, на почту яндекса приходит все читаемо, а на почту хостера, только тело письма читать можно, а From и To (От кого и Тема письма), кракозябры...

      Я конечно понимаю, что Яндекс почта для дураков. Им не выгодно, что бы пользователи вникали в стандарты RFC и поэтому сделали всё, что бы мы (юЗвери), не доставали их саппорт тупыми вопросами :)

      Ну а форму, можешь глянуть: http://веселый-потолочник.рф. Это если ссылка пройдет и не сочтут за рекламу или спам.

      Как-то так, дружище Brendmaster.

      • Brendmaster (12 комм.)

        Да форма у меня уже работает. Я просто хотел поле ТЕЛЕФОН еще добавить, а когда его добавил, перестало работать, ну а теперь убрал и все ок.

        • Lonely_Virus (5 комм.)

          Какой код вставляешь для поля телефон?

          PS Можешь на аську стукнуться. Вместе подумаем. Я тоже планирую телефон вставить. (481пять9пять9)

          • Brendmaster (12 комм.)

            Я в форме mail.php и в скрипте jquery.contactable.js дублировал просто код для емаил и изменил id на phone.

            С телефоном разобрался — вот коды, ну если кому надо (файл mail.php):

            <?php
            //declare our assets
            $name = stripcslashes ($_POST['name']);
            $emailAddr = stripcslashes ($_POST['email']);
            $phone = stripcslashes ($_POST['phone']);
            $comment = stripcslashes ($_POST['message']);
            $subject = stripcslashes ($_POST['subject']);
            $page = stripcslashes ($_POST['page']);
            $headers = "From: \"$name\" <$emailAddr>\r\n";
            $headers .= "Content-type: text/plain; charset=UTF-8\r\n";
            $contactMessage =
            "Имя отправителя: $name <$emailAddr>
            $comment
            $phone
            Письмо отправлено со страницы: $page
            IP отправителя: $_SERVER[REMOTE_ADDR]";
            //send the email
            mail ('ваша почта@mail.кг', $subject, $contactMessage, $headers);
            echo ('success'); //return success callback
            ?>

            а вот изменения в jquery.contactable.js

            (function ($){
            //define the new for the plugin ans how to call it
            $.fn.contactable = function (options) {
            //set default options
            var defaults = {
            url: 'http://demo.studiobrendmaster.ru/contactable/mail.php',
            name: 'Ваше имя',
            email: 'Ваш E-mail',
            phone: 'Ваш телефон',
            message : 'Сообщение',
            subject : 'Студия BRENDmaster',
            page : location.href,
            submit : 'Отправить письмо',
            recievedMsg : 'Студия BRENDmaster, с радостью ответит на Ваше письмо',
            notRecievedMsg : 'Извините, но при отправке письма произошла ошибка, попробуйте позже',
            disclaimer: 'Пожалуйста, не стесняйтесь отправлять сообщения. Мы будем очень признательны за все отзывы и с радостью ответим на все ваши вопросы!',
            hideOnSubmit: true
            };
            //call in the default otions
            var options = $.extend (defaults, options);
            //act upon the element that is passed into the design
            return this.each (function () {
            //construct the form
            var this_id_prefix = '#'+this.id+' ';
            $(this).html ('<div id="contactable_inner"></div><form id="contactForm" method="" action=""><div id="loading"></div><div id="callback"></div><div class="holder"><p><label for="name">'+options.name+'<span class="red"> * </span></label><br /><input id="name" class="contact" name="name"/></p><p><label for="email">'+options.email+' <span class="red"> * </span></label><br /><input id="email" class="contact" name="email" /></p><p><label for="phone">'+options.phone+' <span class="red"> * </span></label><br /><input id="phone" class="contact" name="phone" /></p><p><label for="message">'+options.message+' <span class="red"> * </span></label><br /><textarea id="message" name="message" class="message" rows="10" cols="30" ></textarea></p><p><input class="submit" type="submit" value="'+options.submit+'"/></p><p class="disclaimer">'+options.disclaimer+'</p></div></form>');
            //show / hide function
            $(this_id_prefix+'div#contactable_inner').toggle (function () {
            $(this_id_prefix+'#overlay').css ({display: 'block'});
            $(this).animate ({"marginLeft": "-=5px"}, "fast");
            $(this_id_prefix+'#contactForm').animate ({"marginLeft": "-=0px"}, "fast");
            $(this).animate ({"marginLeft": "+=387px"}, "slow");
            $(this_id_prefix+'#contactForm').animate ({"marginLeft": "+=390px"}, "slow");
            },
            function () {
            $(this_id_prefix+'#contactForm').animate ({"marginLeft": "-=390px"}, "slow");
            $(this).animate ({"marginLeft": "-=387px"}, "slow").animate ({"marginLeft": "+=5px"}, "fast");
            $(this_id_prefix+'#overlay').css ({display: 'none'});
            });
            //validate the form
            $(this_id_prefix+"#contactForm").validate ({
            //set the rules for the fild names
            rules: {
            name: {
            required: true,
            minlength: 2
            },
            email: {
            required: true,
            email: true
            },
            phone: {
            required: true
            },
            message: {
            required: true
            }
            },
            //set messages to appear inline
            messages: {
            name: "",
            email: "",
            phone: "",
            message: ""
            },
            submitHandler: function () {
            $(this_id_prefix+'.holder').hide ();
            $(this_id_prefix+'#loading').show ();
            $.ajax ({
            type: 'POST',
            url: options.url,
            data: {subject:options.subject, page:options.page, name:$(this_id_prefix+'#name').val (), email:$(this_id_prefix+'#email').val (), phone:$(this_id_prefix+'#phone').val (), message:$(this_id_prefix+'#message').val ()},
            success: function (data){
            $(this_id_prefix+'#loading').css ({display:'none'});
            if ( data == 'success') {
            $(this_id_prefix+'#callback').show ().append (options.recievedMsg);
            if (options.hideOnSubmit == true) {
            //hide the tab after successful submition if requested
            $(this_id_prefix+'#contactForm').animate ({dummy:1}, 2000).animate ({"marginLeft": "-=450px"}, "slow");
            $(this_id_prefix+'div#contactable_inner').animate ({dummy:1}, 2000).animate ({"marginLeft": "-=447px"}, "slow").animate ({"marginLeft": "+=5px"}, "fast");
            $(this_id_prefix+'#overlay').css ({display: 'none'});
            }
            } else {
            $(this_id_prefix+'#callback').show ().append (options.notRecievedMsg);
            setTimeout (function (){
            $(this_id_prefix+'.holder').show ();
            $(this_id_prefix+'#callback').hide ().html ('');
            },2000);
            }
            },
            error:function (){
            $(this_id_prefix+'#loading').css ({display:'none'});
            $(this_id_prefix+'#callback').show ().append (options.notRecievedMsg);
            }
            });
            }
            });
            });
            };
            })(jQuery);

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

  15. Brendmaster (12 комм.)

    Забыл в css файле contactable.css надо добавить в самом низу строчку строка около 100-106

    #contactable #phone.error { background-color: #EDBE9C; }

    если не добавить, то если поле телефон не заполнено оно красным выделяться не будет

  16. Brendmaster (12 комм.)

    Ну и наконец подскажите пожалуйста кто-нибудь как сделать поле ТЕМА СООБЩЕНИЯ с выбором тем из открывающегося списка, буду очень благодарен, да и многим пригодиться я думаю

  17. Lonely_Virus (5 комм.)

    Brendmaster — Привет. Я обязательно этим займусь, после того, как Яндекс закончит мудить со сменами алгоритмов ранжирования... Еле успеваю менять стили раскрутки, подстраиваясь под него. Клиенты нервничают и приходиться вкалывать по полной. (((

  18. Владимир (5 комм.)

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

    • АлаичЪ

      Тут дело скорее всего в css стилях. Уже надо на реальном сайте смотреть реальный случай.

      Обратитесь вот к Brendmaster'у, он, я смотрю, разбирается тоже :)

      • Brendmaster (12 комм.)

        АлаичЪ, а ты может поможешь с списком открывающимся с выбором темы сообщения? А то я уже всю голову сломал

        • АлаичЪ

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

  19. Владимир (5 комм.)

    Насколько я понимаю дело не в настройках, а в месте расположения кодов на страницах шаблонов. Или я не прав?

    • Brendmaster (12 комм.)

      Скорее всего. Надо смотреть на самом сайте

      • Владимир (5 комм.)

        Перепроверил. Вроде все правильно. Но по прежнему не прячется :(

        <head>
        <link rel="stylesheet" href="http://inhoteb.jino.ru/contactable/contactable.css" type="text/css" />
        </head>
        <body>
        <div id="contactable"><!-- contactable html placeholder --></div>
        <!--start contactable js -->
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
        <script type="text/javascript" src="http://inhoteb.jino.ru/contactable/jquery.validate.min.js"></script>
        <script type="text/javascript" src="http://inhoteb.jino.ru//contactable/jquery.contactable.js"></script>
        <script type="text/javascript">$(function (){$('#contactable').contactable ();});</script>
        <!--end contactable js -->
        </body>

        Выдержка из кода страницы.

        • Brendmaster (12 комм.)

          А у вас библиотека jquery не подключена случайно повторно? Это во-первых, а во-вторых у Вас второй слеш вот тут:

          http://inhoteb.jino.ru//contactable/jquery.contactable.js

          • Владимир (5 комм.)

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

  20. Brendmaster (12 комм.)

    скинь мне на почту index свой, я посмотрю brendmastermilano@gmail.com

    • Владимир (5 комм.)

      Фаил скинул. Проверил работу скрипта в дримвивер, все прекрасно работает )) а на сайте не хочет

  21. Brendmaster (12 комм.)

    Отправил, проверь. Код у тебя очень корявый, фиг найдешь )))

  22. АлаичЪ

    Посмотрел сайт, это, конечно, жесть, но что уж...

    Как я и говорил выше, я продолжаю грешить на ваш style.css. Попробуйте его из кода страницы внеменно удалить и проверить работоспособность формы, должна заработать.

    • Владимир (2 комм.)

      Да я же говорю, абсолютно не понимаю в программировании, собирал в конструкторе.

      В любом случае, спасибо вам за помощь, хотя и ни чего не вышло ))

      • Владимир (2 комм.)

        Да, действительно, удаление style.css из кода страницы помогло, но полностью "разобрало" страницу на составляющие ))

        Видимо не судьба )

        • АлаичЪ

          Значит дело в конкретных стилях сайта, а так как ваш style.css вообще не поддается приручению, я его изучил и он совершенно не человекопонятный, то тут надо либо самому копать, либо прочить кого-то.

  23. Сергей (3 комм.)

    У меня по началу не работал (Не отправлял сообщения -писал ошибку)

    Я заменил файл jquery.validate.min.js на другой такой же скачанный с сайта (Указанном в jquery.validate.min.js) то есть адрес

    http://bassistance.de/jquery-plugins/jquery-plugin-validation/

    отсюда я его скачал и заменил на последнюю версию, а именно 1.9

    Но у меня с начала такая проблема. (Сайт у меня на jquery- ну у него страниц несколько и они переключаются без обновления сайта.) так вот после установки (<div id="contactable"><!-- contactable html placeholder --></div>) то есть кода который выводит. У меня сразу страницы стали в ряд (То есть изначально на главной странице 1, а после установки скрипта сразу они все выскакивают и отображаются по очереди вниз.

    • Сергей (3 комм.)

      хотя нет, отправка появилась после изменения пути в файле (jquery.contactable.js) там я до файла mail провел такой путь (/123/feedback/mail.php — вместо того что было бы http://site.ru/123/feedback/mail.php)

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

      • Сергей (3 комм.)

        Проблема решена! Удалил из этого кода:

        <!--start contactable js -->
        <script type="text/javascript" src="/jquery/1.7.1/jquery.min.js"></script>
        <script type="text/javascript" src="/jquery.validate.min.js"></script>
        <script type="text/javascript" src="/jquery.contactable.js"></script>
        <script type="text/javascript">$(function (){$('#contactable').contactable ();});</script>
        <!--end contactable js -->

        Вот эту строку:

        <script type="text/javascript" src="/jquery/1.7.1/jquery.min.js"></script>

        И все заработало.

        • АлаичЪ

          Да, два раза подключать jQuery библиотеку — это ошибка. Надо сделать пометку в посте. А но народ, как всегда, наломает дров, а потом не знают почему так получается ;)

  24. Susanin (2 комм.)

    Добрый день!

    Подскажите как поставить сюда капчу ?

    • АлаичЪ

      Никак, читайте внимательно пост! Там написано, что капча не нужна — боты не смогут спамить в эту форму, так как работает она через яваскрипт.

      • Susanin (2 комм.)

        Извиняюсь, просто смотрел в книгу и самого главного не заметил )

  25. Андрей (1 комм.)

    А подскажите, как реализовать, чтобы при нажатии на кнопку отправить месседж уходил на почту, но также при нажатии открывалось определенное окно?

    • АлаичЪ

      Смотрите дополнительный пункт в посте под названием "Всякие дополнительные фишки".

  26. Александр (2 комм.)

    Добрый день!

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

    Пытались победить данную проблему?

    • АлаичЪ

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

      • Александр (2 комм.)

        IE 7, IE 8 — даже если поле подсвечивается красным, по жамку на "отправить" письмо уходит.

        *для теста можно включить режим обратной совместимости (кнопка справа от адресной строки браузера).

        Да, я также не сторонник ИЕ. Но этим браузером до сих пор пользуется порядка 50% юзеров инета. Не поддерживать данный браузер пока что, как минимум, неправильно, как максимум нельзя. Я не говорю сейчас о частных блогах.

        Ок. нет так нет. Буду разбираться)

        • АлаичЪ

          Ваша правда. На IE9 все работает как надо, а вот в режиме совместимости валидатор не отрабатывается :(

          Но на счет 50% доли IE вы не правы: Explorer 8 — 7%, Explorer 9 — 4,9%, Explorer 7 — 2,6%, Explorer 6 — 1,1%. Итого доля «печальных» пользователей 7+2,6+1,1=11,7% — а это далеко не 50%! Я в подсчетах исключил IE9, так как в нем все ок, даже css3 поддерживается.

  27. Александр (2 комм.)

    Поставил, настроил — огромное спасибо за рецепт!

    Вот только оказалось, что часть посетителей сайта в упор не видят кнопочку у левого края окна (которая у Вас называется "Feedback").

    И что самое печальное — среди этих посетителей оказались заказчики. Искать другой скрипт желания нет — уж больно Ваш хорош. То есть возникла необходимость продублировать кнопку "Feedback" текстовой ссылкой на той же странице.

    Конкретно: как вызвать срабатывания функции "открыть форму" через клик на тексте "Задать вопрос" (или на какой-нибудь картинке) в теле html-страницы?

    Буду очень признателен, готов перевести вэб-мани за ответ.

    • АлаичЪ

      Без проблем, необходимо сделать обычную ссылку, только вместо атрибута href="..." необходимо написать onclick="..."

      В итоге должно получиться что-то в духе <a onclick="$('#contactable_inner').click (); return false;">*тут анкор ссылки*</a>.

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

      • Александр (2 комм.)

        Реально заработало вот в таком виде:

        <a onClick="$('contactable_inner').click (); return false;">Задать вопрос</a>

        (один "#" оказался лишним).

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

        <a href="" onClick="$('contactable_inner').click (); return false;">Задать вопрос</a>

        — без "href="" текстовая ссылка просто так не отобразится.

        В любом случае спасибо за оперативную помощь, пойду переводить обещанные вэб-мани.

        • АлаичЪ

          Удивительно, что заработало без решетки #, а точнее удивительно, что не заработало с ней. Потому что правильно именно с решеткой, это указатель id.

          И без href ссылка отобразится ;) Стили же обычно прописываются применимо к элементу <a>, а потом дополнительно для :hover, :active, :visited. Наверное у вас не так...

          Ну да ладно, не буду грузить, главное что заработало.

        • азат (12 комм.)

          А между href="" что писать, я не понял?

          • азат (12 комм.)

            Сам разобрался, вот так сработало:

            <a onclick="$('#contactable_inner').click (); return false;">Задать вопрос</a>

  28. marina (6 комм.)

    Ребята, помогите, пожалуйста!!!

    На сайте с доменом .com все отлично работает. Ставлю форму на сайт .рф — ничего не отправляет! Причем, если в contactable.js прописать путь к файлу .php, который лежит на другом сайте с доменом .com — письма приходят, но в форме появляется надпись "произошел сбой при отправке". Может, причина в русскоязычном домене?

    Может, кто-нибудь подскажет где копаться?

    • АлаичЪ

      Все работает, я только что проверял на своем домене алаичъ.рф. Только есть особенность, адрес надо указывать в таком виде — http://xn--80aayk6ds.xn--p1ai/ (тут как раз и написано http://алаичъ.рф/).

      Так что следуйте инструкции, и где надо заменить site.ru на свой сайт, пишите адрес в указанном виде.

      • marina (6 комм.)

        Да, Александр, Спасибо! Я и в такой кодировке url указывала — ничего! Все с другой стороны оказалось. Тарифный план на хостинге, оказывается, не поддерживает php и MySQL!!! А я, как обезьяна, два дня в коде ковырялась!!! Хорошо — додумалась у них спросить в чем дело, а то бы с ума сошла. Вот, иногда полезно совсем с другой стороны посмотреть на проблему. План сменили, завтра попробую поставить. Еще раз Спасибо!

        • АлаичЪ

          Да, бывает отказывается и такое :)

          Отпишитесь потом, заработало ли все правильно.

  29. andron2900 (2 комм.)

    Настроил, все работает, одна проблема осталась — научить отправлять письма на почтовые ящики со спецсимволами.

    К примеру, если я в mail.php прописываю свой ящик office-worker@ya.ru, т.е. ящик со знаком — , то письма не приходят, а если прописываю другой ящик, который не имеет в имени спецсимволы, то приходит письмо нормально.

    • АлаичЪ

      Должно работать.

      Я проверил для своего ящика, который содержит в адресе нижнее подчеркивание "_" — письмо нормально дошло.

  30. andron2900 (2 комм.)

    Установка формы обратной связи для DLE DataLife Engine 9.4

    1. Скачиваем архив в нужной кодировке и распаковываем.

    2. Вносим изменения в файлы mail.php и jquery.contactable.js (см. ниже).

    3. Папку contactable и все ее содержимое закидываем на сервер в папку вашей темы оформления (шаблона), т.е. /templates/ваш_стиль/. При этом файл mail.php из этой папки заливаем в /engine/modules/.

    4. В шаблоне своего сайта main.tpl между тегами <head> и </head> вставляем следующий код:

    <link rel="stylesheet" href="{THEME}/contactable/contactable.css" type="text/css" />

    5. В шаблоне своего сайта main.tpl ПОСЛЕ открывающего тега <body> вставляем следующий код:

    <div id="contactable"><!-- contactable html placeholder --></div>

    6. В шаблоне своего сайта main.tpl ПЕРЕД закрывающим тегом </body> вставляем следующий код:

    <!--start contactable js -->
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js?ver=1.7.1"></script>
    <script type="text/javascript" src="{THEME}/contactable/jquery.validate.min.js"></script>
    <script type="text/javascript" src="{THEME}/contactable/jquery.contactable.js"></script>
    <script type="text/javascript">$(function (){$('#contactable').contactable ();});</script>
    <!--end contactable js -->

    Очень важный момент! Если на сайте уже подключена библиотека jQuery (а в большинстве случаев это так), то второй раз подключать ее нельзя. В таком случае в коде выше надо убрать строку:

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js?ver=1.7.1"></script>

    Иначе могут возникнуть конфликты — или форма не заработает, или сайт может «развалиться».

    7. Сохраняем файл шаблона. Обновляем любую страницу сайта и начинаем тестировать форму обратной связи!


    Перед тем как заливать файлы из архива к себе на сервер (третий шаг установки), надо внести в них некоторые правки.

    1. Открываем файл jquery.contactable.js и находим там следующий код:

    		var defaults = {
    			url: '/engine/modules/mail.php',
    			name: 'Ваше имя',
    			email: 'Ваш E-mail',
    			message : 'Сообщение',
    			subject : 'Feedback from MySite',
    			page : location.href,
    			submit : 'Отправить письмо',
    			recievedMsg : 'Благодарю вас за письмо',
    			notRecievedMsg : 'Извините, но при отправке письма произошла ошибка, попробуйте позже',
    			disclaimer: 'Пожалуйста, не стесняйтесь отправлять сообщения. Я буду очень признателен за все отзывы и с радостью отвечу на все ваши вопросы!',
    			hideOnSubmit: true
     
    		};

    Как минимум надо изменить для переменной url путь на указанный: '/engine/modules/mail.php'. Остальные переменные можете изменять по своему усмотрению.

    2. Открываем файл mail.php и находим там следующий код:

    	$contactMessage =
    "Имя отправителя: $name <$emailAddr>
     
    $comment
     
    Письмо отправлено со страницы: $page
    IP отправителя: $_SERVER[REMOTE_ADDR]";
     
    	//send the email
    	mail ('admin@site.ru', $subject, $contactMessage, $headers);

    Здесь вам необходимо прописать свой контактный e-mail, на который будут сыпаться письма. То есть заменяем admin@site.ru на свой ящик.

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

    3. По желанию можете изменять внешний вид самой формы, ее цвета и т.д., все css-стили хранятся в файле contactable.css

    Можно пользоваться.

    • АлаичЪ

      Спасибо за комментарий, однако было много ошибок и неточностей, но я исправил и оформил. Добавлю ссылку на коммент в пост.

  31. Дмитрий (1 комм.)

    Здравствуйте. Подскажите можно ли эту форму использовать на сайте от Ucoz?

    Заранее спасибо.

    • АлаичЪ

      Не знаю. Если там разрешается использование php, и есть возможность загружать файлы на сервер, то да.

  32. Григорий (4 комм.)

    Добрый день.

    Установил ваш скрипт, спасибо большое (еще утащил временно ваш дизайн, уж больно он хорош).

    Но при отправке почему-то выдает "Извините, ошибка...", вроде все пути прописал верно, перепроверил разные варианты. Где можно искать ошибку?

    При этом, если просто запустить mail.php — письмо (пустое конечно) успешно приходит на заданную почту.

    • АлаичЪ

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

      • Григорий (4 комм.)

        Спасибо.

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

        var defaults = {
        			url: 'http://babydeal.ru/contactable/mail.php',

        Ведь не может же он просто брать и не работать?

        • АлаичЪ

          Ну логично...

          Вообще затрудняюсь ответить, где именно сбоит скрипт. Попробуйте на другом сайте, например (только не на локалке, на локалке работать на будет).

          • Григорий (4 комм.)

            Попробовал на другом сайте. Взял заново весь скрипт, положил в корень, указал относительные пути. Все видно, но та же ошибка :(

            Уже даже синтаксис посмотрел, думал, что проблема в строчке вызова url.

            Но вроде все ок, он явно просто не может достучаться до mail.php

            Менял им доступы даже на 777 — все равно ошибка. Как бы посмотреть где он затыкается? :(

          • Григорий (4 комм.)

            Все! Решил! Блин блинский! Я подумал, что строчка

            echo ('success'); //return success callback

            Вернет мне просто слово success и совсем не подумал, что это функция вызова и заменил ее на благодарственные слова. Идиот :)

            Извините за беспокойство. Спасибо за скрипт. Очень полезно!

  33. Анна (1 комм.)

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

    Хочу уточнить — сделал ли кто-нибудь селект с выпадающим списком частью формы? Если да, поделитесь, пожалуйста, кодом.

  34. Артем (1 комм.)

    Возникла проблема при подключении на DLE. Все добавил, но подключение формы не происходит, не умею отлавливать такие проблемы.

    Можно комментарий к данному мануалу в применении к DLE.

  35. Kaavain (1 комм.)

    Привет. Спасите чайника. Не нашел нигде более подходящего скрипта чем этот (на самом деле мне нужен еще проще — просто текстовое поле, но это я сам допилю). На основной сайт не ставил, пытаюсь прикрутить к простому HTML на другом сайте. Не входит хоть тресни. Все работает, показывается-прячется, письмо отправляется. НО! Окно не ложится поверх сайта, а вкрячивается там где его строка — сейчас, например, над всем сайтом сразу. Плюс ко всему еще и оформления нет вообще, все коряво... Что за дела?

    http://www.trafaret.tv/index2.html

    Что делал:

    1. Сделал все тщательно по инструкции.

    2. Прочитал все посты сверху донизу, блин — у всех работает!

    3. Отключал жиквери.мин, не помогло — все пропадает.

    4. Отключал свои стили сайта. Нет изменений вовсе.

    5. Посмотрел код этой страницы, тупо скопировал все линки на ЦСС-ки и вставил на свою страницу — оформление "закладки" стало как у тебя тут, но на выехавщей форме — корявость...

    6. Выпил 5 литров пива, побился головой об стену и пошел спать. На утро — все тоже самое.

    F1. Плиз.

    UPD: не работает (то есть криво выглядит и страницу бъет) только в ИЕ9. Мозилла, Опера, Сафари с айфона — все ОК, дизайна только нет (есть то бишь оригинальный).

    • АлаичЪ

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

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

  36. vanyastan (1 комм.)

    Люди добрые, а подскажите пожалуйста как эту форму параллельно вставить в хтмл код сайта? Тоесть у меня все получилось с выдвижной формой, а мне дополнительно нужно ее вставить в страницу сайта. Чтобы она находилась в статическом виде на странице.

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

    Заранее благодарен за внимание!

  37. Дмитрий (1 комм.)

    Привет! Установил форму на свой сайт, прочитал все внимательно. Форма выезжает нормально, хотя отображается не так как на вашем сайте, хотя отключил все свои стили. Но проблема в другом. После заполнения формы нажимаю отправить — появляется надпись "Извините, при отправке письма произошла ошибка ... и т.д." И все — форма не заезжает обратно. Долго бился, менял пути, ставил относительные и абсолютные, менял адрес отправки сообщения, обновил версию jquery.validate.min.js, изменял права доступа ко всем файлам до 777. Все бесполезно. Но когда заглянул в почтовые ящики — обалдел, все письма, которые отправлял дошли до ящика, причем это вообще не зависит от путей (относительные и абсолютные) и прав доступа (сейчас оставил 644).

    Какие есть идеи, почему выдает такое сообщение, хотя форма работает и почему не заезжает обратно??

    Заранее благодарен за ответ!!!

    • АлаичЪ

      Можно забить костыль на такую проблему :)

      В файле jquery.contactable.js

      Найдите:

      $(this_id_prefix+'#callback').show().append(options.notRecievedMsg);
      							setTimeout(function(){
      								$(this_id_prefix+'.holder').show();
      								$(this_id_prefix+'#callback').hide().html('');
      							},2000);

      Замените на:

      $(this_id_prefix+'#callback').show().append(options.recievedMsg);
      							if(options.hideOnSubmit == true) {
      								//hide the tab after successful submition if requested
      								$(this_id_prefix+'#contactForm').animate({dummy:1}, 2000).animate({"marginLeft": "-=450px"}, "slow");
      								$(this_id_prefix+'div#contactable_inner').animate({dummy:1}, 2000).animate({"marginLeft": "-=447px"}, "slow").animate({"marginLeft": "+=5px"}, "fast"); 
      								$(this_id_prefix+'#overlay').css({display: 'none'});	
      							}
  38. азат (12 комм.)

    Вопрос, можно ли его переделать под форму "Заказать звонок". Точнее надо просто убрать проверку "email", иконку я уже дорисую сам. Подскажите где это надо править.

    • АлаичЪ

      Смотрите файл jquery.contactable.js

      Вот в этом месте $(this).html (' ... '); формируется html-код самой формы.

  39. азат (12 комм.)

    Чтоб в форме были поля «Имя», «Телефон» и «Комментарии» надо найти вот это:

    $(this).html ('<div id="contactable_inner"></div><form id="contactForm" method="" action=""><div id="loading"></div><div id="callback"></div><div class="holder"><p><label for="name">'+options.name+'<span class="red"> * </span></label><br /><input id="name" class="contact" name="name"/></p><p><label for="email">'+options.email+' <span class="red"> * </span></label><br /><input id="email" class="contact" name="email" /></p><p><label for="phone">'+options.phone+' <span class="red"> * </span></label><br /><input id="phone" class="contact" name="phone" /></p><p><label for="message">'+options.message+' <span class="red"> * </span></label><br /><textarea id="message" name="message" class="message" rows="10" cols="30" ></textarea></p><p><input class="submit" type="submit" value="'+options.submit+'"/></p><p class="disclaimer">'+options.disclaimer+'</p></div></form>');

    И заменить на это:

    $(this).html ('<div id="contactable_inner"></div><form id="contactForm" method="" action=""><div id="loading"></div><div id="callback"></div><div class="holder"><p><label for="name">'+options.name+'<span class="red"> * </span></label><br /><input id="name" class="contact" name="name"/></p><p><label for="phone">'+options.phone+' <span class="red"> * </span></label><br /><input id="phone" class="contact" name="phone" /></p><p><label for="message">'+options.message+' <span class="red"> * </span></label><br /><textarea id="message" name="message" class="message" rows="10" cols="30" ></textarea></p><p><input class="submit" type="submit" value="'+options.submit+'"/></p><p class="disclaimer">'+options.disclaimer+'</p></div></form>');
  40. азат (12 комм.)

    Такая проблемка:

    На страничке с фотографиями у меня стоит lightbox , так вот, если я встраиваю данный скрипт на эту страничку перестает срабатывать плавное всплытие картинок. Мешат срабатыванию строчка:

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js?ver=1.7.1"></script>

    Удалив только ее все норм работает, как мне быть подскажите.

    Пытался код вставляемый перед закрытием </bodi> ставить вначале боди, тоже лайтбокс не работает.

    • АлаичЪ

      Как я и писал в посте, jQuery не должен вызываться дважды на странице. Так что вам надо сделать так, чтобы он не вызывался два раза. Попробуйте удалить из lightbox'а вызов jQuery оставив только тот, что подгружается моей формой.

      • азат (12 комм.)

        Сегодня пройдусь еще раз по коду, нет ли там второго вызова jQuery (код не мой просто)

  41. Sibiryak (1 комм.)

    Наконец-то настроил, всё заработало! Спасибо вам за отличную форму!

    Есть вопрос: После отправки сообщения форма полностью прячется, включая кнопку FREEDBACK, и не показывается до обновления страницы...

    Скажите, так и должно быть?

  42. Joker (4 комм.)

    Добрый день. Спасибо за форму! Просто шикарная. Но заметил одну проблему под новым фаерфоксом — полю ввода самого сообщения можно менять размер. Как в принципе и тому полю в котором я сейчас ввожу сообщение. Тянешь за правый нижний угол и вуаля.

    Может знает кто как это пофиксить?

    • АлаичЪ

      Да ерунда это все :)

      В css стилях формы добавьте строчку resize:none; — должно получиться примерно так.

      #contactable form#contactForm input, textarea {
      	...
      	resize:none;
      }
      • Joker (4 комм.)

        Спасибо.

        Ещё такой вопрос:

        Воткнул в шаблон joomla 1.5. на одной странице исмользовал mod_ice_accordion (модуль плавного открытия контента) и модуль стал отображать все посты всегда открытыми и не свернуть. Конфликт с jquery.min.js. Вожно ли их подружить? Или подскажите где копать)

        • АлаичЪ

          Как я и писал, подключаться должен только один jquery. Попробуйте при установке формы не подключать jquery, и ошибка пропадет.

          • Joker (4 комм.)

            Да, это я в курсе.

            Убирал её из подгрузки. Тогда исчезает обратная связь. С чем ещё может быть проблема?

            • Joker (4 комм.)

              Задам ещё один глупый вопрос недано начавшего самоучки :)

              Какие функции из jquery использует Ваша форма?

              А то впечатление, что или одну и ту же переменную библиотеки используют, или ещё какая фигня с именами функций.

              Думаю может вырезать нужные для формы из самой библиотеки, да попробовать, заработает ли. Или сие пустая трата времени будет?

              PS Ещё раз спасибо за форму и за помощь. Пойду изучать java и css с php :)

              • АлаичЪ

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

  43. Вячеслав (1 комм.)

    Приветствую.

    Спасибо, Александр, за отличный скрипт формы!

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

    • АлаичЪ

      Там надо менять css-стили и вносить правки в js-скрипт, чтобы изменить расположение. Если готовы колупать файлы, то можете попробовать, но я бы не рекомендовал.

  44. олег (1 комм.)

    Доброго времени суток!

    Искренне благодарю вас, использовал данную форму в своем первом сайте, эта форма, так сказать, стала отправной точкой в нём! ОЧЕНЬ помогло, еще раз спасибо!

  45. Алексей (3 комм.)

    Здравствуйте, столкнулся с такой проблемой. Поставил форму по инструкции, результат оказался следующим: в самом верху сайта, форма обратной связи (без эффектов въезжания, а только чистая html форма), как можно исправить?

  46. Алексей (3 комм.)

    Новый вопросик, все прекрепил, все работает, кроме:

    Поле имя на почтовик приходит иероглифами, все остальное приходит нормально, в чем проблема?

    • АлаичЪ

      Можно попробовать изменить в файле mail.php кодировку отправляемого письма на windows-1251.

      Хотя странно, что имя приходит неверно, а все остальное нормально...

  47. Андрей (1 комм.)

    Здравствуйте.

    Спасибо, наконец-то то что нужно. А то все искал js+capcha... Прикрутилось с первого раза. Однако вот имею проблему в юзабилити:

    Если hideOnSubmit: true, то после успешной отправки сообщения, форма уезжает совсем. Даже ярлычок, на который надо нажать, чтобы форму раскрыть.

    Если hideOnSubmit: false, то после успешной отправки сообщения, форму пишет — "собщение отправлено", ее можно скрыть, но при повторном раскрытии видим то же "собщение отправлено". Приходится обновлять страницу.

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

    • АлаичЪ

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

  48. Никита (1 комм.)

    Я вставляю скрипт по инструкции, всё работает только нет таблички отправить письмо, почему??

    • АлаичЪ

      Не знаю. Скорее всего надо стили смотреть.

    • Владимир (3 комм.)

      Никита, в файле contactable.css на 24 строчке поменяй высоту, например я выставил

      height:550px;

      можно больше...

  49. Денис (1 комм.)

    Александр, помогите пожалуйста разобраться со style.css (скорее всего это он) — почти все работает как нужно, единственный момент — окно сообщения статично, стоит на месте и незаезжает-невыезжает, а сам ярлычок feedback прячется-выезжает как нужно и сообщения тоже отправляются, подскажите где копать, пожалуйста.

    При удалении style.css форма работает как и должна, но теряется все оформление сайта.

    • АлаичЪ

      Непростая проблема. Где копать — в css стилях, где же еще =)

      Не глядя сказать невозможно в чем проблема. А мне разбираться с этим некогда, попробуйте обратиться к какому-нибудь верстальщику, он поможет.

  50. Andrei (1 комм.)

    Нашел ошибку у постера... andron2900 (2 комм.)

    21.03.2012 в 22:25 Установка формы обратной связи для DLE DataLife Engine 9.4

    файл jquery.contactable.js и код:

    Вместо url: 'engine/modules/mail.php',

    Нужно писать url: '/engine/modules/mail.php',

    — как сделать чтобы при получении письма в поле"От кого" стоял адрес отправителя а не своего сервера? Спасибо!

    • АлаичЪ

      Спасибо, исправил коммент.

      Вот примерный кусок кода из моего файла mail.php

      	$subject = stripcslashes($_POST['subject']);
              $page = stripcslashes($_POST['page']);
              $headers = "From: \"$name\" <$emailAddr>\r\n";
      	$headers .= "Content-type: text/plain; charset=UTF-8\r\n";
      	$contactMessage =
  51. Oleg (2 комм.)

    Сперва огромное спасибо! Подскажите пожалуйста, такова проблема. Залил... все отобразилось — отлично. Проверяю. Письма — нет... проверил mail.php. Все нормально, потом думаю попробую тыкнуть при пустых полях... И о боже... окно прячется и все... т.е. как я понял не отправляется ни чего... не выскакивают ошибки о пустых полях. В чем может быть проблема?

    • Oleg (2 комм.)

      Заработало... В чем именно была причина не понял. Все переписал и перезалил. Теперь точно спасибо!

  52. Тимур (1 комм.)

    Все поставил, все работает, вот только на почте пусто...

    Путь писал уже и относительный и абсолютный, что делать не понимаю.

    Пишет спасибо за сообщение, а на почте пусто.

  53. Александр (1 комм.)

    Интересно, а кто пробовал его прикрутить для ucoz? Очень интересно...

    • Владимир (3 комм.)

      На укозе есть свой конструктор форм. Не хуже этого. Просто поиграйся и настрой.

      Другое дело, что укоз только для начинающих. Раскрутишь немножко сайт — пойдет трафик — нагрузку сервера укоза не выдерживают — твой сайт на помойку выкидывают :)

  54. Виталий (1 комм.)

    Привет! Сделал все по инструкции для Wordpress, ничего не происходит! Чистил кеши, разные браузеры — все безрезультатно! Не подскажешь?!

    • АлаичЪ

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

  55. Stas (1 комм.)

    Здравствуйте. Столкнулся с такой проблемой письма отправляются но приходят они в папку спам как можно решить эту проблему?

    • АлаичЪ

      В чем конкретно дело не могу сказать. Но замечал, что если заголовок письма полностью на английском (на латинице, то есть), то может попадать в спам.

    • Wizard (3 комм.)

      Первое, неизвестно на какой ящик отправляешь!

      Если это частный ящик, смотрим в анти-спам фильтрации данного сервера.

      Если это ящик по типу Yandex, Mail.ru и других подобных почтовых сервисов, то у них свои специфики фильтрации и надо смотреть в их настройках.

      А вообще правильнее, это идти в их адресные книжки и добавить адрес. Далее прописать правило, что придя сообщение с ххх адреса пихать его в оную папку))

  56. Dizzy (2 комм.)

    Добрый день, такая проблема...

    Если вводить имя отправителя на русском языке, письмо не приходит, если на английском — то всё в порядке...

    В чём может быть проблема?

    • АлаичЪ

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

      • Dizzy (2 комм.)

        Странно... Движок вордпресс... Может это хостинг шалит, не подскажите?

        • АлаичЪ

          Честно говоря даже и не знаю, я расписал в посте все именно так, как сделано на данном блоге и у меня...

  57. Wizard (3 комм.)

    To all

    Если кому не сложно подсказать решение проблемы.

    Во всех обозревателях отображается нормально, кроме нашего любимого IE. Причем неважно какой версии.

    Страница: http://luali.ru

    Форма размещена ниже как будет видно, проблему.

    Сама форма отказывается быть поверх странички и занимает область равную ее высоте.

    Перепробовал уже:

    Все библиотеки, отключать поочередно и все сразу.

    Все стили.

    И порядки их размещения.

    Единственное что могу сказать методами исключения, возможно "проблема" в файле jquery.contactable.js

    Из-за специфики IE в прочтении данных в этом файле.

  58. Виталий (1 комм.)

    Форма безусловно отличная...

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

    • АлаичЪ

      Такой вариант не подразумевается. Но есть вариант вызова формы при помощи ссылки в тексте, например.

      Как это сделать, описано тут — #comment-8375

  59. Наталья (26 комм.)

    1. Как узнать установлена/подключена ли библиотека jQuery на сайте? Я чайник!

    2. Вы что все мои вопросы за спам приняли — почему снова 1 коммент показывает?

    • АлаичЪ

      1. Открыть исходный текст страницы и произвести поиск по фразе jquery. Цель — найти или jquery.min.js или jquery.js

      2. Нет, просто я для комментариев изменил ваш ящик на @gmail.com. Так что подсчет количества идет по идентификатору этого ящика.

      • Наталья (26 комм.)

        Спасибо за ответ! Лучше бы конечно яндекс ящик оставили, потому что подписку оформила, а все равно граватар тут не нужен у вас (он на ящик гугла заточен). Почту @gmail.com я не люблю — месяц уже не открываю ее там письма теряются. Так что ответов я не получу :(

        С подключением противоспам кода (тот что за 3 минуты) все получилось отлично — ни в корзине, ни в спаме пока ничего не было, акисмет и прочее даже удалила.

        Подсчет комментариев тоже работает :) Это приятно!

        За 2 недели жизни ваши коды самое приятное что произошло. Спасибо большое!!!

        А вот этот ответ озадачил "3. Нет. Что мешает нарисовать свой вариант?" — я не помню чего такого могла спросить, что такой ответ... Помню писала (в письме наверное) про "лифт" — так я ж чайник — не смогу просто — и мало кто может даже ;) Кстати, только что заметила кнопку лифта, по-моему, ее в прошлый раз не было (или может быть такое что в другом браузере не не видно? — заходила с другого браузера тогда).

        • АлаичЪ

          Ладно, не проблема, сменил ящик на @yandex.ru :)

          Рад слышать, что все работает как надо, значит я не зря старался!

          Про ответ нарисовать самому, это я накосячил немного, это не вы писали, а ответил вам. В итоге удалил и вопрос и свой ответ.

          Лифт у меня появился, как видите, после вашего письма сразу же и сделал. Действительно удобно оказалось, спасибо за совет!

          • Наталья (26 комм.)

            Да, все отлично работает. очень надеюсь что те плагин назад ставить не прийдется. Спасибо Александр! Так можно надеяться на рабочий код "лифта"? ;) В разных браузерах у меня ваш лифт отображается по-разному. Сейчас я в яндекс,интернете и вижу надпись еле заметную "наверх" слева, а в прошлый раз заходила с другого и видела справа довольно таки различимую КНОПКУ. Интересно почему так по-разному смотрится? Очень хотелось бы конечно двухсторонний лифт. вверх и вниз :)

            • АлаичЪ

              Возможно заходили в тот момент, когда я только внедрял код и экспериментировал.

              Насколько я понял вы хотите, чтобы я поделился кодом? Вообще я этого не планировал :) Но могу сказать, что часть кода я стырил у яндекса, а часть кода еще где-то стырил. Так что у меня такой вот код-мутант получился :)

              Если вам хочется, то вы можете поступить еще проще — честно стырить код у меня.

              • Наталья (26 комм.)

                Спасибо за честное предложение :) Я такой чайник еще, что не умею коды подсматривать. Искала где у меня библиотека джулери подключена или нет и не смогла — код внизу открыла, а прокрутка как-то работает неинтересно, вот если бы как в блокноте можно было открыть и поиском воспользоваться — может быть так и можно сделать, но я ж чайник :) но когда нахожу толковый материал, то довольно быстро внедряю к себе... т.е. не совсем пропащая, я думаю :)

  60. Евгений (1 комм.)

    Здравствуйте! Все сделал как написано в статье, только адрес к файлу получился другой (/public_html/wp-content/plugins/contactable/contactable.css). И в итоге ничего ( форма обратной связи не выводится). Так как я создаю первый сайт, ну вообще не знаю в чём может быть дело) подскажите пожалуйста

  61. Ципихович Эндрю (12 комм.)

    Спасибо, толково

    может и есть уже такой вопрос-ответ, но всё же

    после того как юзер попользовался формой, письмо отправил, кроме как перезагрузка страницы можно её снова вызвать? как?

    можете залить файл feeback.png, где указано "Написать письмо" Обратная связь" или в этом роде. Спасибо

    • АлаичЪ

      Нет, нельзя — только перезагрузка страницы.

      Картинки залить не могу, у меня их нет, а специально их делать нет желания.

  62. ТимурТТ (2 комм.)

    А можно сделать, что бы отправленые письма приходили на два емайла?

    • АлаичЪ

      Попробуйте продублировать строку mail('admin@site.ru', $subject, $contactMessage, $headers);, указав второй e-mail в ней.

      • ТимурТТ (2 комм.)

        не работает, такой сценарий. тоесть на первый приходит, а второй нет.

  63. Виталий (2 комм.)

    Отличная форма обратной связи! На сайт с голым HTML отлично стала. Работает безупречно! Рекомендую!

  64. Ципихович Эндрю (12 комм.)

    И я выше рекомендовал форму, у автора есть ещё поделки? Интерисует счётчики на сайт: посещения, скачивание, гостевая книга.

    Подобного в сети полно, толковое как форма есть?

    • АлаичЪ

      Установите себе на сайт счетчики Яндекс Метрика и Google Analytics и будет счастье.

      А причем тут гостевая книга я не понимаю...

  65. Виталий (2 комм.)

    Было бы прикольно иметь такую выдвижную форму для сохранения в соц сетях. Выдвигается, а там несколько кнопок на соц сети.

    • Наталья (26 комм.)

      Я тоже такую формочку хочу сбоку и удалить нафик плагин шаребуттонс, там фэйсбук перестал работать — он глючный вообщем. Подобные формы в действии видела, но кнопок там было максимум 4 — это очень мало и конечно никаких секретов по их установке не было, просто у людей есть такие "закладочки" уже. Где берут не знаю.

  66. Ципихович Эндрю (12 комм.)

    В связи с тем, что у меня возникли проблемы с отображением картинки вызывающей форму на 19" и 24" дюймовых мониторах

    подскажите каким ещё образом можно вызывать форму?

    • Ципихович Эндрю (12 комм.)

      В этой форме в css есть

      #contactable #contactable_inner {

      background-image:url (feedback.png);

      ...

      щёлкая по картинке появляется форма обратной связи, хотелось бы отказаться и трансформировать вызов это формы сюда:

      <p id="selectorClassa7">воспользоваться формой обратной связи</p>

      что тут надо добавить\изменить?, спасибо

      • АлаичЪ

        Вот вариант для вызова формы по клику на ссылку — http://alaev.info/blog/post/2681#comment-8375

        • Ципихович Эндрю (12 комм.)

          увы, с первого раза не получилось

          <p id="selectorClassa6">Чтобы написать мне письмо можно:</p>

          <p id="selectorClassa7">воспользоваться <a href="" title="Вызвать форму обратной связи" onClick="$('contactable_inner').click (); return false;">формой обратной связи</a></p>

          Что не так?

  67. Андрей (1 комм.)

    А как сделать так чтобы после отправки сообщения, диалоговое окно вернулось на исходное, а не вообще пропало, естественно с обнулением формы?

  68. Ципихович Эндрю (12 комм.)

    сейчас заметил, форму вызвал, передумал — убрал от неё осталась малозаметная полоска по вертикали на странице

    можно избавиться?

  69. Ципихович Эндрю (12 комм.)

    натыкаюсь на ситуацию — письмо не отправляет говорит ошибка

    много раз подряд??? что может быть???

  70. Ципихович Эндрю (12 комм.)

    сегодня та же история — говорит ошибка

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

  71. Вася (1 комм.)

    Ребят, все супер, но что там с выпадающим списком? Необязательно в теме (лично для меня). В тело бы письма...

  72. Levsha (2 комм.)

    Привет лучшему блогу! :)

    Постоянно читаю и учусь у вас. А сейчас пришел попросить подсказку.

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

    [code]<script type="text/javascript" src="/engine/modules/contactable/jquery.validate.min.js"></script>[/code] из main.tpl, форма регистрации работает нормально, но форма обр.связи перестает.

    ДЛЕ-9.4, levsha.org, подскажите ка можно исправить ситуацию.

    • АлаичЪ

      О как! Интересно девки пляшут! Видимо CMS использует аналогичный скрипт валидации...

      Я так понял, речь идет о движке DLE, если да, то читай дальше.

      Можно попробовать заключить код в теги [not-aviable=registration] и [/not-aviable] вот так:

      [not-aviable=registration]<script type="text/javascript" src="/engine/modules/contactable/jquery.validate.min.js"></script>[/not-aviable]
      • Levsha (2 комм.)

        Спасибо, АлаичЪ! Да, движок ДЛЕ, но не помог тег [not-aviable], попрежнему ругается как будто форма "логин" не заполнена.

        Выкрутился иначе, удалил из main.tpl отрывок кода:

        <!--start contactable js --> ... <!--end contactable js -->

        И вставил его в fullstory.tpl и shortstory.tpl, теперь форма обратной связи работает на главной, категориях и полных новостях.

        Это, конечно, не правильно, поэтому если ктото найдет корень проблемы — буду признателен.

  73. Pavel ASTRA (3 комм.)

    Друзья, очень понравилась форма — СУПЕР! Всё работает!

    Но не смог найти ответ на вопрос от 16.04.2012 в 12:20 : "... как эту форму вставить в хтмл код сайта? Тоесть у меня все получилось с выдвижной формой, а мне дополнительно нужно ее вставить в страницу сайта. Чтобы она находилась в статическом виде..."

    Это возможно реализовать?

    • Ципихович Эндрю (12 комм.)

      Как это «у меня все получилось с выдвижной формой», вяжется с этим «нужно ее вставить в страницу сайта»?

      • Pavel ASTRA (3 комм.)

        Эндрю, эту замечательную форму хочу использовать только на странице «Контакты» и в статичном виде в середине страницы! Весь день потратил и не смог самостоятельно разобраться, где настроить эти параметры!

        • Ципихович Эндрю (12 комм.)

          Я так понял, что хотите в двух местах, а сделали только в одном. Так во втором месте точно также.

          • Pavel ASTRA (3 комм.)

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

  74. Наталья (26 комм.)

    Идем в админке во «Внешний вид» -> «Редактор», выбираем файл header.php, находим там </head> и ВЫШЕ вставляем:

    Александр, а если нет такого тега </head> ни открывающего, ни закрывающего, т очто делать? у меня вот как там вообще есть например: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml">

    <head profile="http://gmpg.org/xfn/11">

    это начало кода, но видим, что что-то похожее заключается вот так: <head profile="http://gmpg.org/xfn/11">

    И есть скрипт который не заключен в теги, я попробовала первым вариантом вставить скрипт без тегов — не помогло и во втором случает это скрипт в любое место кода с тегами вот так: <head><script type="text/javascript">$(document).ready (function (){$('#contactable').contactable ();});</script></head>

    а вставила например между таких строк: <?php wp_enqueue_script ('jquery');?>

    <head><script type="text/javascript">$(document).ready (function (){$('#contactable').contactable ();});</script></head>

    <?php wp_head (); ?>

    <script type='text/javascript' src='<?php bloginfo ("template_directory");?>/letter-frame-templatelite.com.js'></script>

    Путь файла, который меняли в jquery.contactable.js у меня так прописала: http://uvlekatelnie-bonsai.ru/wp-content/plugins/contactable/mail.php — когда забиваю для проверки эту строчку в браузер, то выскакивает надпись: success

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

    Не отобразилась формочка вообщем.

    а в functions.php один за другим 2 перечисленных кода вставила перед закрывающим ?> Это вроде правильно сделала.

    Подскажете мне что с кодом моим сделать куда что вставить в хедере? Так то все верно проделала.

    • АлаичЪ

      Если в header.php нет закрывающего </head>, значит надо искать его в дургом месте. Импровизировать тут нельзя и тем более самостоятельно прописывать <head>. Поищите в других файлах шаблона и вставьте туда, все будет работать.

      • Наталья (26 комм.)

        Проверила все свои файлы шаблона темы -нет этого <head> ни в одном :( Слово head встречается только в таком виде:

        <head profile="http://gmpg.org/xfn/11">

        <?php wp_head (); ?>

        без закрывающего тега.

        В хтмл учебниках пишут что закрывающий тег якобы необязателен или не везде обязателен. Просто расстройство какое-то — у всех нормально все, а у меня он осутствует :(

        • АлаичЪ

          Значит надо срочно создать закрывающий </head> перед <body>. А дальше все по инструкции.

          • Наталья (26 комм.)

            Пробовала и так. И по первому варианту даже уже попробовала. Не выходит "каменный цветок" :(

            • АлаичЪ

              Все, я устал, нет у меня больше идей =) Обратитесь к кому-нибудь, кто согласится разбираться с ситуацией...

              • Наталья (26 комм.)

                Да нет у меня никаких претензий. Очень своим шаблоном недовольна. Кто бы научил меня дизайн моего шаблона натянуть на F2 например. Пробовала, но пока не уразумела — сомневаюсь что это реально. Надо садится и учить все коды и фотошоп :(

                Еще вопрос не может ли установленная форма Контакт 7 (плагин) мешать появлению этой формочки обратной связи? Может плагин вмешивается и потому не видно? и еще немного запуталась в части 1 — это ко всем остальным сайтам, которые не на вордпрессе? там что-то по-поводу отключения библиотеки джеклювери написано, если она стоит уже.

                • АлаичЪ

                  > может ли установленная форма Контакт 7 (плагин) мешать появлению этой формочки обратной связи?

                  Отключите ее — сразу будет понятно.

                  > запуталась в части 1 — это ко всем остальным сайтам, которые не на вордпрессе?

                  Да, к любым сайтам.

                  • Наталья (26 комм.)

                    > запуталась в части 1 — это ко всем остальным сайтам, которые не на вордпрессе?

                    Да, к любым сайтам.

                    Можно ли к вордпрессу попробовать применить? Может ему первый вариант больше по душе прийдется?

                    • АлаичЪ

                      Попробуй, но оба варианта идентичны по сути. Но чем черт не шутит...

  75. Александр (1 комм.)

    Здравствуйте. Установил ваш скрипт на сайт... в мозилле и в хроме все норм... а в IE9 почему-то кнопка прячется за флешем... подскажите, пожалуйста, как исправить ситуацию? Заранее спасибо!

  76. ceki (1 комм.)

    Visyo sdelal kak nado. no email ne otpravlayaet. dazhe ustanovil jquery-1.8.2.min.js ... no ne polucaetsa

  77. Justin_DEAD (1 комм.)

    Спасибо, прикрутил форму на сайт Opencart. Очень удобно

  78. Максим (1 комм.)

    Пробовал поставить на wordpress. Вторым способом не получилось. Форма не появилась. Пробовал первым. Форма появляется, но она кривая. Нету кнопки отправить письмо. Плюс еще перекосилось верхнее меню на mootools. А именно подменю, которое должно вылетать при наведении мышки не показываетя, а отображается рядом. Думал, проблема в этой строке <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js?ver=1.7.1"></script>

    После удаление меню пришло в норму, но форма снова исчезла.

    Шаблон Praven. Кто-нибудь сталкивался с такой проблемой? Есть варианты её решения?

  79. Оля (2 комм.)

    Спасибо большое за форму! С выезжающей панелькой всё получилось. Но мне надо дополнительно сделать вызов формы из текста новости (движок DLE 9.5). Делала, как указано выше в комментариях <a onclick="$('#contactable_inner').click (); return false;">Оформить заявку</a>, ссылка появляется, но она не кликабельна.

    Подскажите, плиз, что надо прописать, чтобы открывалась форма. Если href, то какую ссылку там указывать.

    Спасибо.

    • АлаичЪ

      Попробуйте так <a href="#" onclick="$('#contactable_inner').click (); return false;">Оформить заявку</a>

      • Оля (2 комм.)

        Попробуйте так <a href="#" onclick="$('#contactable_inner').click (); return false;">Оформить заявку</a>

        Увы, если ставлю так, то при нажатии на ссылку просто срабатывает скролл вверх страницы.

  80. Васька (2 комм.)

    Спасибо! прикольная форма. А у меня сайт на php. Как сделать, чтобы форма была на всех страницах? Просто теги боди и head у меня только на отдельных страницах, а хэдэр, футер и левый блок одни и те же. Это мне сейчас на всех страницах впихивать код? Может можно как то иначе?

    Блин, запутался... АлаичЪ, ваш специалист может мне помочь за 500 рубликов? Хочу чтобы не вставлять код на все страницы.

    • АлаичЪ

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

      Специалист, не специалист, но код в любом случае придется вставлять на все страницы. Иначе переделывать сайт надо, а это уже не 500р. Напишите мне в feedback, я дам контакт программиста, там уже сами решите что к чему.

      • Васька (2 комм.)

        куда написать?.. ну он лайн консультанты же делают как то, чтобы он на всех страницах отображался?

  81. Supaman (1 комм.)

    Что то у меня не отображается :( Вроде все сделал по инструкции

  82. Kim (2 комм.)

    Здравствуйте.

    Установил на DLE 9.7 и настроил "под себя" за пару часов (сама установка заняла не более 10 мин.) все работает замечательно... за исключением того, что посетители теперь не могут зарегистрироваться :) постоянно сообщается, что данное (любое) имя уже зарегистрировано...

    Жаль конечно, но придется отказаться от данной формы.

    В любом случае — благодарю Вас за полезные статьи, модули и прочие полезности :)

  83. виталикa (1 комм.)

    А как сделать так чтоб поле было необязательным для заполнения?

  84. Прохожий (1 комм.)

    "Форма обратной связи с капчей уже не рулит, потому что данный скрипт работает только при включенном javascript, а у ботов он выключен, соответственно пользователям никакую капчу вводить не придется, а у вас не будет спама."

    А зачем вообще он нужен JS, что без него "левую" форму отослать нельзя? Юмористы ))

Оставь комментарий или спроси через Twitter →

· Малоинформативные комментарии или комментарии, не содержащие вопрос, удаляются.
· В поле URL оставляйте ссылку только на свой сайт/блог. Эта ссылка для админа, посетители ее не увидят.
· Любой html-код отображается в виде текста, любые ссылки неактивны.
· Для спаммеров - БЛОГ НЕ DOFOLLOW!!!