Блог/eForm во всплывающем окне

Вывод eForm во всплывающем окне

Автор: Кудашев Сергей

В некоторых проектах мне встречалась задача, сделать вывод сниппета обратной связи (в нашем случае eFrom) в модальном (диалоговом) окне. Решение данной проблемы кроется в необходимости проверки, были ли отправлены данные eFom или еще не были, с той оговоркой, что данные передаются через метод POST.

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

<?php
$hasPosted = 'false';
if (isset($_POST['formid']) && ($_POST['formid']!='') ) {
	$hasPosted = 'true';
}
return $hasPosted;
?>

Что делает этот сниппет? Сначала мы объявляем переменную, в которой будет храниться результат проверки, отправлялись ли данные или нет. Далее мы просто проверяем были ли отправлены данные или нет.

Тут надо обратить внимание на два момента. Первое, мы проверяем метод $_POST, так как именно через него eForm передает данные. Второе, мы проверяем наличие параметра 'formid', который является идентификатором формы и задается в eForm через поле hidden.

Теперь пришло время использовать данный сниппет в шаблоне:

<script type="text/javascript">
var isPosted; isPosted = [!subCheck!];
$(document).ready(function(){
	if(isPosted){
		$("#dialog").show();
	} else {
		$("#dialog").hide();
	}
});
</script>

После этого достаточно изменить чанк вывода формы eForm, обернув темплейт [+validationmessage+] в используемый всплывающим окном div, т.е. <div id=”dialog”>[+validationmessage+]</div>. После этого все сообщения сниппета будут выводиться во всплывающем окне.

Комментарии (0)