MV framework logo
  • Архитектура
    • Философия
    • Технологии
    • CMF
    • История версий
  • Админ панель
  • Поддержка
  • Обратная связь
  • Примеры кода
    • Новостная лента
    • Слайдер с баннерами
    • Список с фильтрацией
    • Форма с загрузкой файла
    • AJAX форма на jQuery
    • Вопросы и ответы
    • Каталог с товарами
    • Авторизация пользователя
    • Регистрация пользователя
    • Личный кабинет пользователя
Скачать Версия 2.7 от 06.06.2023
Документация
  • Архитектура
    • Философия
    • Технологии
    • CMF
    • История версий
  • Админ панель
  • Поддержка
  • Обратная связь
  • Примеры кода
    • Новостная лента
    • Слайдер с баннерами
    • Список с фильтрацией
    • Форма с загрузкой файла
    • AJAX форма на jQuery
    • Вопросы и ответы
    • Каталог с товарами
    • Авторизация пользователя
    • Регистрация пользователя
    • Личный кабинет пользователя
Начало работы
  • Установка и запуск
  • Структура папок
  • Запуск простого сайта
  • Предустановленные модели
  • SQLite начало работы
  • Системные настройки
  • Миграции
Модели (models)
  • Общие принципы моделей
  • Типы данных
  • Настройка модели
  • Простые модели
  • Внешние ключи
  • Деревья
  • Многие ко многим
  • Группа
  • Управление записями
  • Управление простыми моделями
  • Дополнительные возможности
Шаблоны (views) и маршрутизация (routes)
  • Общие принципы шаблонов
  • Объект класса Router
  • Объект MV
  • Index, default и 404 шаблоны
  • Создание нового шаблона
  • Вывод данных в шаблоне
  • Объект класса Record
  • Файлы и изображения
  • Дата и время
  • Редиректы
  • Отправка email
  • Специальные методы
Формы
  • Создание форм
  • Настройка полей формы
  • Правила проверки полей формы
  • Проверка полей формы
  • Работа с данными формы
  • Использование данных из моделей
  • Методы форм
SQL запросы
  • Конструктор запросов
  • Прямые запросы
  • Постраничная разбивка
  • Сортировка
  • Фильтрация
  • Загрузка из csv файлов
Сессии и безопасность
  • Работа с сессиями
  • AJAX
  • Кэширование
  • Безопасность
  • Отладка
Плагины
  • Общие принципы плагинов
  • Дополнения к административной панели
Документация
Начало работы
  • Установка и запуск
  • Структура папок
  • Запуск простого сайта
  • Предустановленные модели
  • SQLite начало работы
  • Системные настройки
  • Миграции
Модели (models)
  • Общие принципы моделей
  • Типы данных
  • Настройка модели
  • Простые модели
  • Внешние ключи
  • Деревья
  • Многие ко многим
  • Группа
  • Управление записями
  • Управление простыми моделями
  • Дополнительные возможности
Шаблоны (views) и маршрутизация (routes)
  • Общие принципы шаблонов
  • Объект класса Router
  • Объект MV
  • Index, default и 404 шаблоны
  • Создание нового шаблона
  • Вывод данных в шаблоне
  • Объект класса Record
  • Файлы и изображения
  • Дата и время
  • Редиректы
  • Отправка email
  • Специальные методы
Формы
  • Создание форм
  • Настройка полей формы
  • Правила проверки полей формы
  • Проверка полей формы
  • Работа с данными формы
  • Использование данных из моделей
  • Методы форм
SQL запросы
  • Конструктор запросов
  • Прямые запросы
  • Постраничная разбивка
  • Сортировка
  • Фильтрация
  • Загрузка из csv файлов
Сессии и безопасность
  • Работа с сессиями
  • AJAX
  • Кэширование
  • Безопасность
  • Отладка
Плагины
  • Общие принципы плагинов
  • Дополнения к административной панели
MV tracker

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

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

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

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

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

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

//Передача значений формы в объект модели
$data = $form -> getAllValues(array("company", "type", "email"));
$mv -> clients -> getDataFromArray($data);
$mv -> clients -> create();

//Передача значений формы в объект класса Record
для создания/обновления записи
$values = $form -> getAllValues(array("first_name", "last_name", "email"));
$client = $mv -> clients -> findRecordById(34);
$client -> setValues($values) -> update();

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

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

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

Предположим есть URL "/question/" по которому должна открываться контактная форма. Файл шаблона назовем "view-contact.php" и пропишем в файле "config/routes.php" строку "question/" => "view-contact.php". Также создадим в модуле страниц новую страницу с полем "Ссылка" равным "question".

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

<?
$content = $mv -> pages -> findRecord(array("url" => "question", "active" => 1));
$mv -> display404($content);

$fields = array(
    array("Имя", "char", "name", array("required" => true)),
    array("Email", "email", "email", array("required" => true)),
    array("Сообщение", "text", "message", array("required" => true)),
    array("Код безопасности", "char", "captcha", array("required" => true, 
                                                       "captcha" => "extra/captcha-code/")));

$form = new Form($fields);

if(!empty($_POST))
{    
    $form -> getDataFromPost() -> validate();

    if($form -> getValue("captcha"))
        if(!isset($_SESSION["captcha"]) || $_SESSION["captcha"] != $form -> getValue("captcha"))
            $form -> addError("Не верно введен код безопасности.");    

    if(!$form -> hasErrors())
    {
        $message = $form -> composeMessage(array("name", "email", "message"));
        $message .= $mv -> registry -> getSetting("EmailSigature");
        Email :: send($mv -> options -> getValue("email-send"), "Вопрос с сайта", $message);

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

include $mv -> views_path."main-header.php";
?>

<div id="content">
    <div id="page" class="editable">   
        <h2 class="page-name"><? echo $content -> name; ?></h2>
        <?             
            echo $form -> displayErrors();

            if(isset($_GET['sent']))
                echo "<p>Ваше сообщение было успешно отправлено.</p>";
            else
            {
                echo $content -> content;

                $fields = array("name", "email", "message", "captcha");
                include $mv -> views_path."parts/form-typical.php";
            }     
        ?>
    </div>      
</div>

<?
include $mv -> views_path."main-footer.php";
?>

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

Проверка полей формы

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

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

© 2012-2023, MV framework team

English MV task tracker system Лицензия

Поделиться