Содержание

Объект w_response

Класс для подготовки ответа AJAX

Расположение

core/core.php

Поля

В поля можно передавать произвольные данные, которые также будут переданы клиенту

ПолеОписаниеТип
failtrue, при ошибке формыboolean
requestНовые данные запроса страницыobject
redirectСсылка переадресации страницы. reload, для перезагрузкиstring
urlНовый url страницыstring

Статичные методы

load

w_response::load(context)

Инициализация объекта

АргументОписаниеТипПо-умолчанию
contextКонтекст, необходимый для обработки слоевobject обязательный
ВозвращаетОбъект w_responseОбъект w_response

Методы объекта

errorField

w_response::errorField(test,field,message) Валидация поля формы, подготовка сообщений об ошибке, устанавливает поле fail в true.

АргументОписаниеТипПо-умолчанию
testаргумент для обработки условия. Обрабатывать в случае trueboolean обязательный
fieldУказатель поля формы. Соответствует атрибуту data-fieldstring обязательный
messageСообщение об ошибкеstring обязательный
Возвращаетtrueboolean

exec

w_response::exec() Закончить обработку и вывести данные.

layout

w_response::layout(layout,source)

Подготовить данные слоя к выводу. Исходный код слоя source будет помещен в слой layout

АргументОписаниеТипПо-умолчанию
layoutИмя слоя, в который необходимо поместить данныеИмя слоя обязательный
sourceИсходный код слояstring обязательный
Возвращаетtrueboolean

render

w_response::render(layout,layout_to)

Подготовить данные слоя к выводу. Слой layout будет обработан и выведен в слой layout, либо в layout_to, если соответствующий аргумент присутствует.

АргументОписаниеТипПо-умолчанию
layoutИмя выводимого слояИмя слоя обязательный
layout_toИмя слоя, в который необходимо поместить данныеИмя слояnull
Возвращаетtrueboolean

Формат ответа

После завершения выполнения формируется 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(); //Отправляем данные