Работа с html формами

В файле /Project/views/pages/books/save.php создадим простую форму

В форму ложим <input type="hidden" name="cache" value="N" /> для того чтобы форма корректо обработалась в контроллере без учета кеша.



<?php

/** @var array $page */
/** @var string $title */
/** @var string $h1 */
/** @var string $description */
/** @var string $keyword */
/** @var array $props */

defined('PROLOGUE__FRAMEWORK') or die ;

?>
<?php $this -> display('Project/views/header'); ?>
<form action="" method="post">
    <input type="hidden" name="cache" value="N" />
    <input type="text" placeholder="Название книги" name="name" />
    <br>
    <textarea placeholder="Описание книги" name="description"></textarea>
    <br>
    <button type="submit">Сохранить</button>
</form>
<?php $this -> display('Project/views/footer'); ?>


Форма будет отправлять данные в контроллер. Пишем код в контроллере:


    protected function saveBook() {

        # если текущий url /books/save/ #
        if ($this -> rout -> get('method') == 'save') {
            # если поля с формы не пустые #
            if ($this -> form -> input('name') AND $this -> form -> input('description')) {
                # Формируем массив данных #
                $arData = [
                'name' => $this -> form -> input('name'),
                'description' => $this -> form -> input('description')];
                # дебажим форму #
                Pr::debug($arData);

            }

            # Подключаем представление  /Project/views/pages/books/save.php #         
            $this -> view -> display('/Project/views/pages/books/save');

        }

    }

Итак, займемся тестированием. Переходим на страничку вашсайт.ру/books/save/

К примеру заполним форму 

Нажимаем сохранить и видим

Это результат дебага Pr::debug(); Все, данные из формы переданны в контроллер и сохранены в массиве $arData

© 2015 - 2018