MV framework logo
  • Архитектура
  • Философия
  • Админ панель
  • Поддержка
  • Обратная связь
Документация
Скачать .zip версия 3.2.0 от 25.12.2024
  • Архитектура
  • Философия
  • Админ панель
  • Поддержка
  • Обратная связь
Начало работы
  • Установка и запуск
  • Структура папок
  • Запуск простого сайта
  • Предустановленные модели
  • SQLite начало работы
  • Системные настройки
  • Миграции
  • Отладка
Модели
  • Общие принципы моделей
  • Типы данных
  • Настройка модели
  • Простые модели
  • Внешние ключи
  • Деревья
  • Многие ко многим
  • Группа
  • Управление записями
  • Управление простыми моделями
  • Дополнительные возможности
Шаблоны и маршрутизация
  • Общие принципы шаблонов
  • Объект класса Router
  • Объект MV
  • Создание нового шаблона
  • Вывод данных в шаблоне
  • Объект класса Record
  • Файлы и изображения
  • Дата и время
  • Редиректы и Http
  • Отправка email
  • Специальные методы
Формы
  • Создание форм
  • Настройка полей формы
  • Валидация полей формы
  • Безопасность форм
  • Работа с данными формы
  • Использование данных из моделей
  • Методы форм
SQL запросы
  • Конструктор запросов
  • Прямые запросы
  • Постраничная разбивка
  • Сортировка
  • Фильтрация
Дополнительно
  • AJAX
  • Плагины
  • Кэширование
  • Безопасность
  • Дополнения к административной панели
Документация
Начало работы
  • Установка и запуск
  • Структура папок
  • Запуск простого сайта
  • Предустановленные модели
  • SQLite начало работы
  • Системные настройки
  • Миграции
  • Отладка
Модели
  • Общие принципы моделей
  • Типы данных
  • Настройка модели
  • Простые модели
  • Внешние ключи
  • Деревья
  • Многие ко многим
  • Группа
  • Управление записями
  • Управление простыми моделями
  • Дополнительные возможности
Шаблоны и маршрутизация
  • Общие принципы шаблонов
  • Объект класса Router
  • Объект MV
  • Создание нового шаблона
  • Вывод данных в шаблоне
  • Объект класса Record
  • Файлы и изображения
  • Дата и время
  • Редиректы и Http
  • Отправка email
  • Специальные методы
Формы
  • Создание форм
  • Настройка полей формы
  • Валидация полей формы
  • Безопасность форм
  • Работа с данными формы
  • Использование данных из моделей
  • Методы форм
SQL запросы
  • Конструктор запросов
  • Прямые запросы
  • Постраничная разбивка
  • Сортировка
  • Фильтрация
Дополнительно
  • AJAX
  • Плагины
  • Кэширование
  • Безопасность
  • Дополнения к административной панели
MV tracker

Работа с данными формы

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

//Значение конкретного поля
$staff = $form -> getValue('staff');

//Аналогично с помощью getter
$staff = $form -> staff;

//Заголовок поля типа enum (не ключ)
$form -> getEnumTitle('gender');

//Все значения формы, возвращает ассоциированный массив
$form -> all();

//Выборочные значения формы, возвращает ассоциированный массив
$form -> all(['company', 'about', 'staff']);

//Передача значений формы в объект Record
$values = $form -> all(['company', 'type', 'email']);
$record -> setValues($values);
$record -> create();

//Либо в одну строку
$record -> setValues($form -> all()) -> update();

//Создание списка всех полей для отправки email сообщения
$message = $form -> composeMessage();

//Создание списка выборочных полей в нужной последовательности для email сообщения
$message = $form -> composeMessage(['company', 'about', 'email']);

Полный пример обработки данных формы

Предположим есть URL /question по которому должна открываться контактная форма. Создадим шаблон и пропишем файл шаблона в маршрутах.

//Файл config/routes.php

'/question' => 'view-question.php',

Также создадим в модуле страниц новую страницу с полем Ссылка равным 'question'.

Ниже приведено содержимое файла views/view-question.php.

<?
$content = $mv -> pages -> find(['url' => 'question', 'active' => 1]);
$mv -> display404($content);

$fields = [
    ['Имя', 'char', 'name', ['required' => true]],
    ['Email', 'email', 'email', ['required' => true]],
    ['Сообщение', 'text', 'message', ['required' => true]],
    ['Файлы', 'file', 'files', ['files_folder' => 'files_questions', 'multiple' => 3]],    
    ['Код безопасности', 'char', 'captcha', [
                            'required' => true, 
                            'captcha' => 'extra/captcha-simple',
                            'session_key' => 'captcha']]
];

$form = new Form($fields);
$form -> useTokenCSRF();

$form -> submit() -> validate();

if($form -> isSubmitted() && $form -> isValid())
{
    $message = $form -> composeMessage(['name', 'email', 'files', 'message']);    
    Email::send('hello@world.com', 'Вопрос с сайта', $message);

    $mv -> reload('?sent');
}

include $mv -> views_path.'main-header.php';
?>
<div id="content">
    <h1><? echo $content -> name; ?></h1>
    <?
        echo $form -> displayErrors();

        if(isset($_GET['sent'])):
    ?>
        <div class="success">Ваше сообщение было успешно отправлено.</div>
        <? else: ?>
        <form method="post" enctype="multipart/form-data">
            <? echo $form -> display(); ?>
            <div class="buttons">
                <? echo $form -> displayTokenCSRF(); ?>
                <button>Отправить</button>
            </div>
        </form>
    <? endif; ?> 
</div>
<?
include $mv -> views_path.'main-footer.php';
?>

Предыдущий раздел

Безопасность форм

Следующий раздел

Использование данных из моделей
MV workshop banner
MV tracker

© 2014-2025, MV framework team

English MV tracker project Github

Поделиться