====== Объект 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(); //Отправляем данные