Динамическая подгрузка view через AJAX

Обсуждение документации. Переводы Cookbook и авторские рецепты.
Ответить
shkarbatov
Сообщения: 423
Зарегистрирован: 2012.12.10, 14:19
Откуда: Россия

Динамическая подгрузка view через AJAX

Сообщение shkarbatov »

Всем добрый день. Сейчас вникаю в yii. И в связи с этим появился ряд вопросов. Для меня ответ на них не очевиден, так что прошу строго меня не судить.

1) Во view, в стандартных страницах (которые запускаются при разворачивании фреймворка), написан label средствами yii (echo CHtml::label('Result', 'output')), понятно, что в нем можно задать все параметры для css, но не лучше (не быстрее ли) было бы писать HTML <label>?

2) Я делаю AJAX запрос на сервер (встроенными возможностями yii) через echo CHtml::form(), в контроллер идет запрос, контроллер обрабатывает его и дает ответ с результатом, потом выводит результат на страницу - с этим все понятно.
В моем случае надо не просто выводить полученные данные, а полученные данные передать в динамический шаблон (view), там они подставятся и только потом вывести заполненный шаблон на странице. Как это лучше делать?

Всем спасибо!
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: Динамическая подгрузка view через AJAX

Сообщение yiijeka »

1. Обсуждалось тысячи раз. Как удобнее - так и делайте. Со временем поймёте сами, что удобнее CHtml вам : )
2. Можно решить через простыню js кода, а можно эти данные полученные в контроллере там же и отправить в динамический шаблон renderPartial и получить его в основном представлении.
shkarbatov
Сообщения: 423
Зарегистрирован: 2012.12.10, 14:19
Откуда: Россия

Re: Динамическая подгрузка view через AJAX

Сообщение shkarbatov »

1) Спасибо
2) Смотрел renderPartial, но немного не понял.
http://www.yiiframework.com/doc/api/1.1 ... ial-detail
$view - Это собственно мой шаблон в который мне надо подставить полученные данные и вывести на странице.
$data - Это собственно данные, которые мне надо передать в мой шаблон.
- Не совсем понятно data to be extracted into PHP variables and made available to the view script, они доступные и для php и для javascript?
- Как передавать данные в шаблон и по какому имени они будут там доступны? array('variable_name_in_view'=>$variable_from_controller) так?
$return - Получает заполненный шаблон, если true, рендерит, если false.
$processOutput - Позволяет вернуть js и css и шаблона.

Спасибо!
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: Динамическая подгрузка view через AJAX

Сообщение yiijeka »

Верно. По поводу доступных переменных:
array('variable_name_in_view'=>$variable_from_controller) передадите в таком виде, то во $view вашем она будет доступна по имени $variable_name_in_view (по такому как вы указали 'variable_name_in_view'). И да, в js можно использовать $php переменные, но они как текст вставятся, не динамические. Если вам нужен обмен с js, то используйте ajax json, в Yii помощник для php - CJSON::decode(), CJSON::encode().
shkarbatov
Сообщения: 423
Зарегистрирован: 2012.12.10, 14:19
Откуда: Россия

Re: Динамическая подгрузка view через AJAX

Сообщение shkarbatov »

Огромное спасибо. Завтра буду тестировать.
Ответить