easyForm - визуальный конструктор несложных форм

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

Простейший пример вызова на сайте

[!easyForm? &formid=`f1`!] — где цифра после префикса f — это id формы из модуля (в нашем случае — это 1).

upd 15.12.2013
встречайте easyForm 0.2
Основные нововведения:
1 добавлен параметр &config в вызов (по умолчанию default), который вызывает соответствующий файл шаблонизации вывода формы
2 ООП
3 шаблонизация вывода формы на фронтэнд и в админку
4 возможности мультиязычности через подгрузку языкового массива в сниппете в переменную $eF->lang перед загрузкой метода $eF->Run()
5 возможности самостоятельно задавать названия таблиц для форм и полей форм, если стандартные уже заняты — как в сниппете, так и в модуле
6 Сниппет easyForm перенесен из файла в базу для легкой и удобной интеграции с evoBabel. Пример интеграции:
$eF->lang=$_SESSION['perevod'];

подгружает массив актуальных переводов в нашу форму.

Ссылка на скачивание архива новой версии

upd добавлен параметр вызова &ajaxMode=`1` для работы без перегрузки всей страницы плюс соответствующие js и css файлы. Для корректной работы необходим подключенный на сайте jquery не ниже 1.7.2 (рекомендуется версия jquery 1.10.2)
Для использования обновить полностью архив

Так это выглядит внутри модуля:
создание форм (список доступных форм, ссылки на редактирование/удаление) плюс форма для создания новой формы.

Ссылка, где это можно скачать (инструкция по установке — в файле readme.md и где посмотреть результаты работы.


редактирование формы (тут задаем название формы — оно же используется в теме письма с сайта, обратный email для отправки данной формы)


список полей формы и ссылки на их редактирование, плюс форма для создания нового поля


форма редактирования поля формы


Элементы стилизуются обычным css, во всех элементах прописаны классы для легкой стилизации.
Если кого интересует, приглашаю потестировать, побагрепортить и доработать :)

99 комментариев

avatar
Штука нужная. А как дела с капчей?
avatar
капча нынче не в моде, лучше скрыть поле и сделать его не заполнение — обязательным. Боты не пройдут.
avatar
Вы не правы, на четырех сайтах спам-бот хавал параметр type=«hidden» и не трогал эти поля. Даже ставил на поля стиль display:none в класс и всеравно не трогал эти поля.
Поборол только тем что генерил стиль display:none через скрипты от того понял что ява у спам-ботов не работает, пока.
avatar
т.к. каждая строка формы имеет свой собственный дополнительный класс, то вы запросто можете скриптами нужному вам классу задать display:none.
avatar
это хорошо)))
avatar
С капчей — уже хорошо )) Задаете в вызове &vericode=`1` как для eForm и получаете на выходе капчу со ссылкой «обновить картинку» )
avatar
бегло прошелся по скрипту… а зачем вывод в таблице?
как бы можно оформить изначально в более адекватном и семантичном виде списков + обтекание, или лейбл + инпут
avatar
По таблице — это ж в разделе «Быстрые решения» — такой метод для не сильно сложных форм обычно наиболее распространен (чисто на глаз) :)).
В планах — шаблонизация строк, капча и ajaxMode — если хватит здоровья, т.к. планы у многих тут обычно грандиозные, а вот времени не хватает :))
avatar
предлагаю без каптчи, чуть выше я описал метод, который реально работает. Ни одного бота за 6 месяцев :)
avatar
Так одно другому не мешает, возможность использовать капчу с помощью vericode=`1` не делает ее использование обязательной. Ну а саму возможность сохранить — это дело нужное :)

А насчет пустого поля — для этого надо всего лишь ввести еще один тип поля — hidden, саму проверку то на функцию onBeforeMailSent повесить никто не мешает и так — все параметры вызова идентичны eForm, т.к. это просто надстройка, которая позволяет пользователям самостоятельно создавать формы не вникая в тонкости html и особенности валидации eForm :)
avatar
Перевел, кстати, по вашему совету всю верстку формы с таблиц на вложенные блоки — теперь можно стилизовать любую строку и любой элемент строки как вздумается. Причем делается это не просто в пределах формы, а в пределах каждой строки за счет доп.класса вроде
<code><div class="f_row f_row2">...</div></code>
В общем не знаю как кому, но мне кажется, что при текущей верстке формы ее можно средствами css сделать абсолютно любого вида за счет сочетания наследования классов формы, строки, элемента и т.п.
Так что наверно и с вариантом шаблонизации элементов заморачиваться смысла нет — т.к. особо это никому тут и не нужно :)
Комментарий отредактирован 2013-12-08 18:00:19 пользователем webber
avatar
:) таки да!

а по поводу скрытого поля, маленький сниппет, на проверка заполненности:
<?php
function checkField(&$fields,&$vMsg,&$rMsg) {
    if(!empty($fields['lastname'])) {
        return false;
    } else {
    return true;
    }
}
?>
avatar
отличная идея, ибо порой простые формы нужно клепать часто. Спасибо автор!
туда б всунуть ajax проверку полей или хотя б вывод ошибки через js, чтоб не перегружать страницу, в таком случае будет решен вопрос танцев с бубном, когда нужно вывести форму в fancybox или подобных.
avatar
по поводу проверки полей — неясно, насколько это нужно. Можно, конечно, подключить тот же Validation-Engine — но тогда придется пользователю самому задавать и условия валидации. Возможно, на первое время, хватит и простой отправки на ajax — этим планирую все-таки заняться и доделать :)
avatar
Можете глянуть, как это выглядит на тестовом сайте сейчас с режимом &ajaxMode=`1`
avatar
это просто sex :))

вопрос по теме, к чему при создании указывать мейл? если в любом случае без указания в сниппете, не шлет на конечный адрес
avatar
По логике eForm если задан параметр &to то туда и шлет, а если там пусто, то шлет на админский ящик. Email указанный в модуле как-раз и попадает в параметр &to — т.е. если для разных форм разные получатели, то указывается этот мэйл.
avatar
наверное поймал маленький баг, проверял форму, данные на почту не пришли, постоянно торчит текст: Данные успешно отправлены. Нет нужды отправлять данные несколько раз.
avatar
Спасибо, полезный инструмент, думаю пригодиться. Буквально недавно пришлось делать одностраничник на Modx. На котором было с полтора десятка простеньких форма на пару-тройку полей. Тогда появилась мысль сделать что-то подобное, но на уровне задумки и осталось))
avatar
В принципе это больше инстумент для владельца сайта, когда он хочет сам делать произвольные формы. Не стал уже тут расписывать все детали (т.к. на мой взгляд они, в принципе, очевидны). Но я реализовывал это примерно следующим образом:

1. делал шаблон вроде «текстовая с формой» и там ТВ, в который списком передавал доступные формы из модуля через поле «возможные значения»
2. В самом шаблоне выводил нужную форму если она выбрана.

Просто получается, что modx в этом плане какая-то обделенная была, т.к. не существовало инструментов, с помощью которых владелец сайта мог бы без знания html и eForm сделать себе нужную форму. А теперь если такое предвидится, мы просто стилизуем один раз как разные поля должны выглядеть, а пользователь делает себе какие угодно формы и размещает их где угодно — такая была задумка когда это все делалось )
avatar
а при удалении, затирает свои таблички? :)
avatar
нет, я думаю — это излишний функционал. Кому надо — тот сам удалит. А кто не знает как — то он про эти таблицы и после удаления знать не будет :)
avatar
Предлагаю оформить его для установки через репозиторий :)
сделал это для evoBabl думаю для примера будет самое оно :)
а то за всеми доделывать не хватает времени :(
а такие вкусные решения хочеться что б не терялись а были в одном месте с удобной установкой
avatar
Опыта формирования для репозитория не имею, но что-то вроде сформировал ))
Попутно доработал, оптимизировал код, добавил подгрузку разных конфигов вывода формы через доп.параметр &config, + также переработал модуль чтобы облегчить его шаблонизацию в будущем (если понадобиться).

Можно попробовать грузануть в репозиторий и установить оттуда.
avatar
встречайте easyForm 0.2
Основные нововведения:
1 добавлен параметр &config в вызов (по умолчанию default), который вызывает соответствующий файл шаблонизации вывода формы
2 ООП
3 шаблонизация вывода формы на фронтэнд и в админку
4 возможности мультиязычности через подгрузку языкового массива в сниппете в переменную $eF->lang перед загрузкой метода $eF->Run()
5 возможности самостоятельно задавать названия таблиц для форм и полей форм, если стандартные уже заняты — как в сниппете, так и в модуле
6 Сниппет easyForm перенесен из файла в базу для легкой и удобной интеграции с evoBabel. Пример интеграции:
$eF->lang=$_SESSION['perevod'];

подгружает массив актуальных переводов в нашу форму.

Ссылка на скачивание архива новой версии
avatar
Поставил easyForm 0.2, все отлично работает, стилизуется, но письма не приходят. И капчу убрали?
avatar
Чтоб была капча, надо чтоб в вызове был &vericode=`1` (как и в eForm). По поводу «не шлет» — слишком мало информации — ошибку выдает, или все ок, но письма не приходят? Сайт можно глянуть?
avatar
В личку отправил.
avatar
Сложно сказать. Если eForm отдает сообщение что все отправлено, то по идее должно отправлять. Так что тут ли mail() на хостинге упал и ошибок не отдает, или eForm с другой формой на тот же адрес отдающей данные конфликтует.
avatar
Да, но на сайте две формы. В одной еформ чистый стоит по старинке, на другой адрес шлет, все работает. А модуль не работает.
avatar
Я себе 4 штуки на страницу поставил — 3 easyForm в ajax-режиме и четвертая через обычный eForm без аякса — и все 4 отправляют письма. Так что проблема где-то в районе eForm (может стилизация не нравится, может всплывающее окно, может еще чего) — с ней это бывает в самых неожиданных местах :) В чем конкретно причина именно у вас пока сказать затрудняюсь — надо экспериментировать, убирать стилизацию, убирать модальное окно и т.п. )
avatar
Полезное это дело — тестирование ) Обнаружил как небольшой баг в easyForm (с полем to — письма уходили на example@example.com в вашем случае) и с самим MODx — который в новых версиях не пропускает массивы в POST, а следовательно валит eForm с множественными чекбоксами и мультиселектом (где эти самые массивы в POST и передаются).
avatar
Ага, увидел что работает, спасибо за помощь и модуль_)
avatar
Очень понравился модуль! Спасибо огромное!

Пытаюсь сдружить ваш модуль с docBilder ссылка на тему agel-nash.

Немного поправил код модуля где идет вызов eForm собственно код измененной функции
<code>public function prepareRun(){
	$this->params['tpl']=$this->makeTpl();
	$this->params['report']=$this->makeReportTpl();
	$formInfo=$this->getFormInfo();
	$this->params['eFormOnBeforeMailSent'] = 'docBilder';
	$this->params['to']=$formInfo['email'];
	$this->params['subject']='Обратная связь: '.$formInfo['name'];
	return $this->params;
}</code>

В итоге вываливается фатал еррор что функция docBilde не найдена

С eForm полет нормальный, мб подскажете в какую сторону копать?
Комментарий отредактирован 2014-01-26 13:51:31 пользователем 118RUS
avatar
Так скорее всего надо просто перед вызовом easyForm вызывать сниппет, где эта функция docBuilder определена. Кстати, совсем не обязательно править код модуля, его же можно вызывать как eForm со всеми его параметрами вроде [!easyForm &formid=`f1` &eFormOnBeforeMailSent=`docBilder`....!]

Вы просто похоже не проделали вот этот пункт
Создаем сниппет docBilder такого содержания:…
И добавляем вызов этого сниппета перед вызовом eForm.…
[!docBilder!]
[!eForm? &eFormOnBeforeMailSent=`docBilder` ...........!]

только вместо eForm надо вызывать easyForm с обязательным параметром formid ну и в данном случае обязательным &eFormOnBeforeMailSent=`docBilder`
Комментарий отредактирован 2014-01-26 17:27:07 пользователем webber
avatar
Спасибо огромное, разобрался =)

За модуль отдельное спасибо, очень нужный! Приятно и удобно работать!
Его бы в репозиторий добавить)
avatar
Так он для репозитория готов, просто не добавляется почему-то. Можете в свой личный добавить (зарегистрироваться там и добавить ссылку github.com/webber12/easyForm-0.2/archive/master.zip ) тогда из админки сможете его себе ставить автоматом на любой сайт после авторизации в модуле extras. Регистрация и добавление тут extras.evolution-cms.com/my-repo.html
Комментарий отредактирован 2014-01-31 18:33:25 пользователем webber
avatar
Замечен небольшой косяк в конфиге
<div class="f_sendbutton"><input type="submit" value="Отправить"</div>

Отсутствует закрывающая скобка после слова «Отправить»
avatar
Спасибо, поправил.
avatar
Обнаружилась еще небольшая странность, мб только у меня такое(на локальном сервере пока, на хостинге не проверял)
<form id="f[+id+]" class="easyForm" action="[~[*id*]~]" method="post">	

На главной странице в action подставляется слеш и в итоге вываливается ошибка jQuery, если же убрать подстановку id и оставить action пустым то на главной странице полет нормальный.

Интересно с чем связано такое поведение? Я понимаю что собственно модуль тут не при чем
avatar
Проблема с action на главной странице (связано с seostricturl). Убирайте смело [~[*id*]~] ))

Кстати, можете попробовать внести вот эти правки и вызывать на разных страницах с разными конфигами через параметр &cfg=`configName`. Просто копируете конфиг default и называете его config.configName.php
Комментарий отредактирован 2014-02-01 17:24:49 пользователем webber
avatar
Спасибо!
Да я понял что можно разные конфиги делать.
Мне только на главное нужны формы, т.к. делаю лендинг пейдж ))))))
Решил не заморачиваться с формами и сделать на cms ))))
avatar
Добрый вечер!
После недавнего обновления выдает ошибку в 54 строчке файл easyForm.class.php T_VARIABLE
Лечится заменой данного файла на более раннюю редакцию
avatar
На скорую руку поправил, теперь с 53 строчки выглядит вот так:

public function makeTpl($config='default'){
	$config = $this->params['config'];
	$outer='';
	$fields='';
	$capcha=$this->checkCapcha();
Комментарий отредактирован 2014-02-06 19:31:01 пользователем 118RUS
avatar
Вечер добрый!
Немного изменил у себя сниппет easyForm.class.php под свои задачи.
Теперь есть возможность добавления плейсхолдера в инпут текст и текстареа
Изменил 90 строку:

$field="<textarea name='param".$k."' class='f_txtarea' eform='".$v['title'].":".$type.":".$req."' placeholder='".$v['value'].$f_reg."'></textarea>";
$f_reg=($req==1?'*':'');


И 154 строку:
$field="<input type='text' name='param".$k."' value='' class='f_txt' eform='".$v['title'].":".$type.":".$req."' placeholder='".$v['value'].$f_reg."'>";
$f_reg=($req==1?'*':'');


Теперь при добавлении нового поля в модуле, в поле значение добавляю плейсхолдер.
Например, «Введите Ваше имя»
Вот только пришлось закомментировать 19 строку в сниппете config.default.php:
<div class="f_row f_row[+num+]">
<!---<div class="f_title">[+title+] [+req_text+]</div>----->
<div class="field">[+field+] </div>
</div>

Теперь форма выглядит так:
avatar
при установке поймал ошибку:
« MODX Parse Error »
MODX encountered the following error while attempting to parse the requested resource:
« Execution of a query to the database failed - Unknown column 'sort' in 'order clause' »
SQL > SELECT * FROM `site.ru_modx`.`modx_forms` ORDER BY sort ASC
Basic info
REQUEST_URI : 	http://site.ru/manager/index.php?a=112&id=9
Manager action : 	112 - Execute module
Referer : 	http://site.ru/manager/index.php?a=1&f=menu
User Agent : 	Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0
IP : 	___
Benchmarks
MySQL : 	0,1442 s (5 Requests)
PHP : 	0,0073 s
Total : 	0,1514 s
Memory : 	1,26778411865 mb

Backtrace
1	include_once()
manager/index.php on line 572
2	evalModule()
manager/processors/execute_module.processor.php on line 104
3	eval()
manager/processors/execute_module.processor.php on line 117
4	require_once()
manager/processors/execute_module.processor.php(117) : eval()'d code on line 17
5	easyFormModule->Run()
assets/modules/easyForm/module.easyForm.php on line 12
6	easyFormModule->show()
assets/modules/easyForm/easyForm.class.php on line 346
7	easyFormModule->getFormList()
assets/modules/easyForm/easyForm.class.php on line 321
8	DBAPI->query()
assets/modules/easyForm/easyForm.class.php on line 247
avatar
спс
Комментарий отредактирован 2014-03-09 18:15:33 пользователем PawelGil
avatar
сниппет вызывайте без синтаксических ошибок для начала

SELECT * FROM `pawelgil_modxevo`.`modx_forms` WHERE `id`=1!


или formid указали как 1! (нажали шифт при вводе второй единицы) или что более вероятно — не закрыли после 1 кавычку ` перед тегом закрытия сниппета !]
avatar
как добавить плейсхолдер к Email и имени?
И оформление нужно создавать шаблон и подключать?
использовать чанки под eform не получится?
avatar
modx.im/blog/fast-solution/1720.html#comment18367

сам я плейсхолдеры использую крайне редко (по очень настоятельным просьбам заказчика) — поэтому в базовом функционале этого нет. Бесит меня, когда после ошибочно введенных данных непонятно что и в какие поля вносить, т.к. они заняты моими данными (местами некорректными) и нигде больше не подписаны — пока не сотрешь все что там находится не узнаешь, а это еще догадаться надо простому пользователю чего делать.
Комментарий отредактирован 2014-03-09 19:38:02 пользователем webber
avatar
Возникла проблема.
добавил 2 формы. одна заказ звотка, вторая отправка сообщения.
modxevo.pawelgil.ru/ вверху и в предфутере.
вот когда заполляешь верхнюю форму и вылазит ошибка, то меняется и нижняя форма, т.е. на месте где было 3 поля формы id1 (имя, мыло, сообщение) появляется имя и телефон, т.е. поля формы id3
В чём косяк?
avatar
У обоих форм обертывающий div с одинаковыми
id = "mc_signup"
вместо стандартных конфиговских
id="f_form[+id+]"
по которому эти формы и идентифицируются.
avatar
ок. а ещё подскажите, почему конфигурация может не цепляется.
если файн называется samlpe.config.php
то я же указываю просто sample?
но оно грузит стандартную всё равно.
avatar
config.sample.php — по аналогии с config.default.php )
avatar
да так и сохранено. я имею ввиду в вызове я пишу же просто sample?
avatar
&cfg=`sample`
avatar
скажите, пожалуйста, ещё как сделать чтобы сообщение об ошибке было не на красном фоне вверху, а на том месте, как в еформс, т.е. над формой.
спасибо!
avatar
т.к. это все делается средствами js, то и шаманить надо в скрипте assets / snippets / easyForm / js / easyForm.js — закомментировать строку 28 и строку 30.
avatar
А может кто нибудь подсказать решение такой задачи: Имеется две формы регистрации. Вызываются с помощью webloginpe. Естественно, в каждой форме разные параметры: группы, шаблоны форм.
Нужно сделать так, что бы они вызывались при выборе radiobutton. Например: заказчики и исполнители. При выборе radiobutton заказчики, выводится webloginpe с шаблоном формы под заказчиков, с группой заказчики. Ну и соответственно, при выборе radiobutton исполнители, выводится webloginpe с шаблоном формы под исполнителей, с группой исполнители.
Как это можно реализовать? Только, пожалуйста поподробнее. Я еще чайник)))
avatar
Создайте новую тему. EasyForm работает со сниппетом eForm и к сниппетам авторизации/регистрации вроде webloginpe или weblogin отношения не имеет абсолютно :)
avatar
Спасибо! )
avatar
$eF->lang интересует параметр.
Перевод в каком виде нужно делать?
У меня сайт англоязычный, а админка русская. как мне поступить?
avatar
Подскажите, как быть с ошибкой отправки почты?
1.0.13RC2-d6.5
Main mail: Программа не смогла отправить почтуThe following From address failed: mail@yandex.ru: Called Mail() without being connected
Комментарий отредактирован 2014-06-10 12:20:47 пользователем sergge
avatar
Если в названии поля указать последним символом двоеточие и указать его обязательным для заполнения, то проверка eForm не сработает.

eform=«Название::string:1»
Комментарий отредактирован 2014-06-22 16:29:12 пользователем Gmax
avatar
А зачем использовать в конце двоеточие в названии поля, если это скорее элемент оформления, чем названия. Для формирования formTpl можно добавить двоеточие в конфиге шаблона формы, в шаблоне reportTpl двоеточие после заголовка и так добавляется автоматом.

Можно конечно в название и какие-нибудь модх-теги вбить с последующим удивлением, что что-то работает не так — ситауция аналогичная, т.к. двоеточие — это можно сказать элемент тега eForm :)

upd — хотя, если это волнует народ — пофиксил.
Комментарий отредактирован 2014-06-22 17:05:04 пользователем webber
avatar
Либо сделать проверку и удалять, если такая ситуация произошла.
А если заголовки редактируются человеком далеким от modx и веба в целом и по чистой случайности он добавил этот символ?
avatar
Возникла вот такая проблема, модуль работает отлично, но вместо закрывающего div'a
ставит
соответственна вся верстка ломается
в config.default.php
закрывающий div есть.
вот страница
kzpa66.ru/priyom-obrashhenij.html
avatar
нашел ошибку, в config.default.php

не было закрывающей > вот здесь
avatar
Очень познавательные посты — теперь то всем точно ясно — где именно и что ставится вместо закрывающего div`а и где именно не было закрывающей > )))))
avatar
Очень понравился модуль, но не могу решить одну проблему, раньше в обычной форме типа список с помощью ditto выбирал все модели и вставлял в форму, тоесть пользователь мог выбрать какую то модель из выпадающего списка и список менялся сам в зависимости от появления или удаления моделей.Пример
select name=«avd»
option value=«1» disabled Выбрать модель /option
[[Ditto? &hideFolders=`1` &parents=`103` &depth=`2` &tpl=`choice` &sortDir=`ASC` &sortBy=`menuindex`]]
/select
А как реализовать данную схему в этом модуле, как мне по простому задать список всех моделей в форме? в самом модуле он не понимает конуструкций типа ditto
Комментарий отредактирован 2015-01-16 09:56:39 пользователем kusok
avatar
Теперь в поле возможных значений можно вписать вызов сниппета, который должен вернуть эти значения через ||. Например вписать в этом поле
return $modx->runSnippet("values");


и сам сниппет values

<?php
return "1||2||3||4||5";
?>
avatar
А как решить вопрос репорта? Нужно что бы клиенту отправлялось письмо, мол мы получили и свяжемся с вами!
avatar
Также, как вы бы решили данный вопрос при использовании обычного eForm :)
avatar
А возможно ли подтверждение отправки «Спасибо! Ваша информация успешно отправлена.» выводить во всплывающем окне, на аяксе, как информацию об ошибке?
avatar
Подправить поведение можно тут. За вывод ошибок отвечает метод showInfo(msg)
avatar
Js пока знаю плохо, добавление showInfo(msg); после else явно не выход :)
Нужно написать другой метод для вывода?
avatar
Добавил метод
$(".message").css({'display':'none'});

function showInfo(msg){
	var inf=$("<div class='easyForm_message'>"+msg+"</div>");
	inf.appendTo("body").fadeIn("fast",function(){
		setTimeout(function(){inf.fadeOut("slow")}, 5300,function(){})
	});
}	

Далее прописал
else{
				showInfo(msg);
				$("div#"+parent_id).html(response);
				$("div#"+parent_id).find("div.message").css({'display':'none'});				
				$("div#"+parent_id).css({'opacity':'1'});
				$("div#"+parent_id).html('<div class="message"><h3>Спасибо!</h3><p>Ваша информация успешно отправлена.</p></div>');

Поправьте, если неправильно
avatar
А возможно ли сделать, чтоб тема письма называлась выбранным пунктом выпадающего списка (3 варианта)?
Комментарий отредактирован 2015-02-18 14:12:58 пользователем strangle
avatar
Это надо делать идентично обычному eForm — т.е. подменой поля на «событие» eFormOnBeforeMailSent например.
Делаем сниппет makeSubject с кодом
<?php
function makeSubject(&$fields) {
    $fields['subject'] = $fields['ваше_поле_с_темой'];
}


Потом вызываете этот сниппет перед вызовом easyForm — [!makeSubject!], а в самом вызове easyForm добавляете событие &eFormOnBeforeMailSent=`makeSubject`

Сам не пробовал, но должно сработать.
avatar
Спасибо за оперативность!
Не работало из-за моей невнимательности, написал поле param5, все заработало, огромное спасибо!
Комментарий отредактирован 2015-02-18 15:37:03 пользователем strangle
avatar
Установил easyForm 0.2 с репозитория в сборке от Dmi3yy, бистро создал форму — вывел на страницу — но после ее заполнения и отправки — просто перекидывает на главную страницу (ни сообщения о успешной отправки, ни письма на почту!)
Данные что отправляются на почту сами формируются как и форма? или их нужно где-то вписывать?
avatar
Только на главной не работает отправка.
XMLHttpRequest cannot load http:. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.jquery.min.js:4 sendjquery.min.js:4 m.extend.ajaxeasyForm.js:17 (anonymous function)jquery.min.js:3 m.event.dispatchjquery.min.js:3 r.handle
10(index):1 Uncaught InvalidStateError: Failed to read the 'selectionDirection' property from 'HTMLInputElement': The input element's type ('submit') does not support selection.(index):1 onclick

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

Две большие огромные просьбы для конструктивности:
1. если хотите помощи, указывайте такие данные, чтобы можно было что-то ответить (адрес сайта, пример вызова и т.п.) — иначе это просто пост ни о чем будет.
2. когда сообщаете о том, что У ВАС что-то не работает, пишите У МЕНЯ не работает, не надо вводить других в заблуждение общими фразами о том, что не где-то что-то не работает в принципе (хотя и такие ситуации не исключены)
:)
Комментарий отредактирован 2015-03-31 08:41:07 пользователем webber
avatar
По моему все понятно! я привел проблему, выкладкой багрепорта с браузера!
При включенном аяксе не работает, работает только без него.
Выкладку сайта зачем?! и так вроде все понятно!
avatar
Можно узнать, решили ли эту проблему? У меня та же картина. Не работает только на главной и именно с этой ошибкой.
avatar
Нет, решить не смог, сделал все без Ajax на главной, в целом работает нормально. Если что то не правильно, обновится страница и выдаст окошко! Разница только во времени и перезагрузке страницы.
avatar
Попробуйте создать config файл для главной страницы и удалить адрес с формы оставив в таком виде
<form id="f[+id+]" class="easyForm" action="" method="post" enctype="multipart/form-data">
Обсуждалось выше
avatar
Действительно, куда я смотрел? просто убрать [~[id]~] из action. Спасибо.
avatar
Столкнулся с проблемой отправки файлов через easyForm с включенным параметром &ajax=`1`. Файл не прикрепляется к письму и соответственно не приходит на почту. Может кто-то уже сталкивался с такими проблемами и знает пути решения?
avatar
Для файлов аяксом serialize() не подходит нужно использовать FormData()
Соответственно файлы аяксом не будут отправляться.
avatar
Спасибо, уже нашел этот вариант.
avatar
Еще б добавить такое поле в настройках формы:
— выпадающий список или радиобуттон с такими опциями: отправлять сообщения в админку только админу, отправлять сообщение всем пользователям админпанели.
Что-то в этом духе :)
avatar
Проблемка.
Установил форму на сайт bit.ly/1VOpbmn
Но никаких всплывающих окон, никакой реакции сайта на отправку формы не происходит. ( форма внизу в конце страницы). После нажатия кнопки«отправить» только отправляет на верхнюю часть страницы и всё.

не могу понять в чем причина.

А так, в общем, форма классная, легко настроить и придать нужную форму. Но видимо, я криворук, и поэтому не получилось нормально настроить =(
avatar
Функцию для scrollspy внимательнее посмотрите, файл assets/templates/js/jquery-func.js
avatar
Все работает, все хорошо, отличный модуль, спасибо! Но вопрос — как управлять соббщениями об успешной отправке или перенаправлении на документ. Я о параметрах eform &gotoid=``, &thankyou=``. В сниппете easyform они не работают( и выводится шаблонное сообщение от eform как я понимаю «Спасибо! Ваша информация успешно отправлена». Хотелось бы решение какое-то для данного вопроса. Спасибо!
avatar
По идее, должны работать, если задать их прямо в вызове easyform
avatar
К сожалению не работают ни один ни второй… ajaxMode включен… Т.е. вызоы сниппета конкретно такой например [!easyForm? &formid=`f1` &ajaxMode=`1` &gotoid=`1`!]
avatar
ajaxMode и не предполагает никаких переходов, т.к. работает без перегрузки/изменения адреса страницы. А без ajaxMode тоже не переходит?
avatar
Добрый день
У меня возникла проблема
Использую ваш плагин ИЗИФОРМ
Проблема заключается в том что, когда я заполняю форму на сайте, нажимаю отправить она приходит ко мне на почту и всё хорошо

Но
1.Я не могу повторно отправить ещё форму, пишет что не надо так часто отправлять… данное окно висит более 30МИн засекал так и не пропало, попытался ограничить отправку и сделал раз в 2 мин `&submitLimit=`2` по истечению 2-х мин форма сама отправляться (то есть то как ранее была заполнена)

Как мне сделать так что бы, я смог отправлять форму раз 2 мин, но разные, что бы повторно появлялись поля для заполнения
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.