private:koding:hostcms:modules:formy:esli_net_modulja_form

Если нет модуля форм

Инструкция

  1. Создаем структуру с типом Динамическая страница
  2. Размещаем в коде код из обработчика
  3. Создаем константы FORM_EMAIL_TO и FORM_EMAIL_FROM
  4. Тестируем
  5. Стилизуем под сайт

Для добавления полей:

  1. Добавляем поле в html
  2. Добавляем поле в массив $aFields
  3. Изменяем шаблон контента $content

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

Обработчик

<h1>Обратная связь</h1>
<form action="." method="post" id="callback_form" enctype="multipart/form-data" name="form">
<table class="link_table"> 
	<tbody>
		<tr>
			<td align="left" valign="middle"><strong>Ваше имя<span class="style9"> *</span>:</strong></td> 
			<td><input id="name" name="name" size="40" type="text" /></td> 
		</tr> 
		<tr> 
			<td align="left" valign="middle"><strong>Ваш телефон:</strong></td> 
			<td><input id="age" name="tel" size="40" type="text" /></td> 
		</tr> 
		<tr> 
			<td align="left" valign="top"><strong>Вопрос<span class="style9"> *</span>:</strong></td> 
			<td><textarea id="comments" cols="35" rows="7" name="mess"></textarea> <input id="confirm" name="confirm" type="hidden" value="yes" /></td>
		</tr>	
		<tr>
			<td></td>
			<td align="left" valign="top"><strong><input type="submit" value="Отправить" name="submit"></strong></td>
		</tr>
	</tbody> 
</table> 
<p><strong class="style9">*</strong> — поля, обязательные для заполнения.</p>
</form>
 
<?php
/**
* Отправка писем 5
* 
* @author Kuts Artem, KAD Systems (©) 2015	
* @date 03-07-2015	
* Начало >>
*/
 
// Имя формы
$formName = "form";
 
// Название поля-ключа отправки или кнопки отправки
$keyName = "submit";
 
// Тема письма
$subject = "Заявка";
 
// Получатель
$form_email_to = FORM_EMAIL_TO;
// Отправитель
$form_email_from = FORM_EMAIL_FROM;
 
// Массив полей, второе значение - флаг валидации
$aFields = array('name' => 1, 'tel' => 0, 'mess' => 1);
 
// Шаблон контента
$content = "<strong>Имя:</strong> {name} <br/> <strong>Телефон:</strong> {tel} <br/> <strong>Сообщение:</strong> {mess} <br/>";
 
// Временная директория для размещения загруженных файлов
$filesTmpPath = "upload/";
 
// Сообщения
$aMessages = array(
		'success' => 'Спасибо! Ваша заявка принята!', 
		'error_ff' => 'Пожалуйста, проверьте правильность заполнения полей!'
	);
 
 
$valid = TRUE;
 
if (isset($_POST[$keyName]))
{
	foreach ($aFields as $field => $req)
	{	
		if ($req && (isset($_POST[$field]) && mb_strlen($_POST[$field]) < 1))
		{
			$valid = FALSE;
			break;
		}
		$content = str_replace('{'.$field.'}', $_POST[$field], $content);
	}
 
	if ($valid)
	{		
 
		// Отправляем
                if (Core_Mail::instance()
                    ->to($form_email_to)
                    ->from($form_email_from)
                    ->subject($subject)
                    ->message($content)
                    ->contentType('text/html')
                    ->header('From', $form_email_from)										
                    ->send())
                {
                  $message = $aMessages['success'];
 
                }
	}	else
	{
		$message = $aMessages['error_ff'];
		?>
			<script>
		<?php
		foreach ($aFields as $field => $req)
		{	
			echo $formName . ".";
			echo $field . ".value = \"";
			echo $_POST[$field] . "\";" . "
			";
		}
		?>
			</script>
		<?php
	}
 
	if (isset($message))
	{?>
 
	<script>
		alert("<?php echo $message;?>");
		<? if ($valid)
		{
		?>
		// Раскомментить, если после отправки нужно вернуться на главную
		document.location = "/";
		<?
		}
		?>
	</script>
 
	<?php }
}
?>
private/koding/hostcms/modules/formy/esli_net_modulja_form.txt · Last modified: 27.06.17 в 14:32 by maximzasorin_gmail.com