====== Объект w_response ======
Класс для подготовки ответа AJAX
===== Расположение =====
''core/core.php''
===== Поля =====
В поля можно передавать произвольные данные, которые также будут переданы клиенту
^Поле^Описание^Тип^
|fail|true, при ошибке формы|boolean|
|request|Новые данные запроса страницы|object|
|redirect|Ссылка переадресации страницы. ''reload'', для перезагрузки|string|
|url|Новый url страницы|string|
===== Статичные методы =====
==== load ====
w_response::**load**(//context//)
Инициализация объекта
^Аргумент^Описание^Тип^По-умолчанию^
|context|Контекст, необходимый для обработки слоев|object обязательный| |
^Возвращает|Объект w_response|[[ядро:w_response|Объект w_response]]| |
===== Методы объекта =====
==== errorField ====
w_response::**errorField**(//test//,//field//,//message//)
Валидация поля формы, подготовка сообщений об ошибке, устанавливает [[ядро:w_response#поля|поле fail]] в true.
^Аргумент^Описание^Тип^По-умолчанию^
|test|аргумент для обработки условия. Обрабатывать в случае true|boolean обязательный| |
|field|Указатель поля формы. Соответствует атрибуту ''data-field''|string обязательный| |
|message|Сообщение об ошибке|string обязательный| |
^Возвращает|true|boolean| |
==== exec ====
w_response::**exec**()
Закончить обработку и вывести данные.
==== layout ====
w_response::**layout**(//layout//,//source//)
Подготовить данные слоя к выводу. Исходный код слоя ''source'' будет помещен в слой ''layout''
^Аргумент^Описание^Тип^По-умолчанию^
|layout|Имя слоя, в который необходимо поместить данные|[[:js#именование_слоев|Имя слоя]] обязательный| |
|source|Исходный код слоя|string обязательный| |
^Возвращает|true|boolean| |
==== render ====
w_response::**render**(//layout//,//layout_to//)
Подготовить данные слоя к выводу. Слой ''layout'' будет обработан и выведен в слой ''layout'', либо в ''layout_to'', если соответствующий аргумент присутствует.
^Аргумент^Описание^Тип^По-умолчанию^
|layout|Имя выводимого слоя|[[:js#именование_слоев|Имя слоя]] обязательный| |
|layout_to|Имя слоя, в который необходимо поместить данные|[[:js#именование_слоев|Имя слоя]]|null|
^Возвращает|true|boolean|
===== Формат ответа =====
После завершения выполнения формируется JSON-ответ в следующем формате
{
fail: null, //результат валидации
src: [ //массив слоев
{
layout:string, //имя целевого слоя
src:string, //исходный код слоя
}
],
errors: { }, //список ошибок валидации (поле: текст ошибки)
redirect: string, //ссылка для переадресации
url: string, //новый url страницы
request: {} //новые данные запроса страницы
}
===== Пример =====
$response = w_response::load($this); //получение объекта результата запроса
$field1 = w_input::int('field1'); //получаем поле field1 как число
$field2 = w_input::text('field2'); //получаем поле field2 как текст
$response->errorField($field1, 'somebody.field1', 'Поле field1 заполнено неверно');
$response->errorField($field2, 'somebody.field2', 'Поле field2 заполнено неверно'); //проверка полей
if (!$response->fail) { //проверяем, если проверка прошла успешно
$response->render('user.user.profile'); //обрабатываем для вывода профиль пользователя
$response->info = 'Все ок!'; //передаем переменную info
}
$response->exec(); //Отправляем данные