renderPartial 2 шаблона по очереди

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
shkarbatov
Сообщения: 423
Зарегистрирован: 2012.12.10, 14:19
Откуда: Россия

renderPartial 2 шаблона по очереди

Сообщение shkarbatov »

Всем, добрый вечер.

Есть шаблон, он отправляет ajax submit в контроллер, в контроллере данные подставляются в шаблон через renderPartial, затем в этом же методе происходит renderPartial другого шаблона.

Подскажите пожалуйста, как сделать так, что бы срендерить первый шаблон, вывести его на экран, затем рендерить второй шаблон и его тоже потом выводить при этом, оба шаблона должны появляться по нажатию на одну кнопку?

Или надо делать 2 отдельных запроса?

Всем, спасибо!

Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

Re: renderPartial 2 шаблона по очереди

Сообщение anton44eg »

два раза вызвать renderPartial?

Dismal
Сообщения: 247
Зарегистрирован: 2011.10.16, 13:25

Re: renderPartial 2 шаблона по очереди

Сообщение Dismal »

Возвращайте содержимое в 2 разных div, например,

Код: Выделить всё

<div class="data_div1"><?renderPartial($view1, $data);?></div>
<div class="data_div2"><?renderPartial($view2, $data);?></div>
Затем в ajax success разбирайте ответ с помощью jquery.

А если надо просто вывести один шаблон за другим, то просто 2 раза вызываем renderPartial, как anton44eg подсказал выше.

shkarbatov
Сообщения: 423
Зарегистрирован: 2012.12.10, 14:19
Откуда: Россия

Re: renderPartial 2 шаблона по очереди

Сообщение shkarbatov »

Так то оно так, вызвать renderPartial однозначно надо будет 2 раза, вопрос в том, возможно ли дергать контроллер только один раз.

То есть дернуть сервер, выполнить renderPartial первый раз, вернуть запрос, затем дернуть renderPartial второй раз.

Просто что бы не дергать лишний раз контроллер. Но как я понял, так сделать не получится, так как 1 запрос, 1 ответ, 1 jquery обработчик.

Так?

shkarbatov
Сообщения: 423
Зарегистрирован: 2012.12.10, 14:19
Откуда: Россия

Re: renderPartial 2 шаблона по очереди

Сообщение shkarbatov »

Необходимо по порядку выводить 2 разных шаблона. При том, что контроллер можно дергать только один раз.

Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

Re: renderPartial 2 шаблона по очереди

Сообщение anton44eg »

Код: Выделить всё

public function actionIndex()
    {
        $this->renderPartial('index');
        $this->renderPartial('index2');
    } 

shkarbatov
Сообщения: 423
Зарегистрирован: 2012.12.10, 14:19
Откуда: Россия

Re: renderPartial 2 шаблона по очереди

Сообщение shkarbatov »

А как он будет знать куда ему рендерится?
Так у меня идет запрос, выполняется и javascript уже вставляет его.

Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

Re: renderPartial 2 шаблона по очереди

Сообщение anton44eg »

всмысле куда?

shkarbatov
Сообщения: 423
Зарегистрирован: 2012.12.10, 14:19
Откуда: Россия

Re: renderPartial 2 шаблона по очереди

Сообщение shkarbatov »

У меня генерится шаблон, затем по нажатию на кнопку добавляется новый шаблон внутрь текущего на определенную позицию, затем 3 раза генерится этот же шаблон только уже с другими параметрами и каждый вставляется за последним добавленным.

Надо реализовать поочередную загрузку.

Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

Re: renderPartial 2 шаблона по очереди

Сообщение anton44eg »

Не понимаю что вам непонятно, вы и так уже все описали

shkarbatov
Сообщения: 423
Зарегистрирован: 2012.12.10, 14:19
Откуда: Россия

Re: renderPartial 2 шаблона по очереди

Сообщение shkarbatov »

<body>
Какой-то текст, который есть с самого начала 1
Какой-то текст, который есть с самого начала 2

Сюда надо вставить текст по нажатию
Сюда надо вставить новый текст по 1 нажатию
Сюда надо вставить новый текст по 1 нажатию

Какой-то текст, который есть с самого начала 3
Какой-то текст, который есть с самого начала 4
</body>

Код: Выделить всё

public function actionIndex()
    {
        $this->renderPartial('index');
        $this->renderPartial('index2');
    } 
Куда оно будет вставлять содержимое с учетом вышеописанного кода?

shkarbatov
Сообщения: 423
Зарегистрирован: 2012.12.10, 14:19
Откуда: Россия

Re: renderPartial 2 шаблона по очереди

Сообщение shkarbatov »

Можно ли это все сделать по одному запросу (по нажатию кнопки) и сформировать каждый в одном контроллере отдавая результат по частям?

shkarbatov
Сообщения: 423
Зарегистрирован: 2012.12.10, 14:19
Откуда: Россия

Re: renderPartial 2 шаблона по очереди

Сообщение shkarbatov »

Понимаете:
renderPartial просто добавляет новый шаблон в конец уже существующего.
А мне надо в середину существующего, а не в конец.

shkarbatov
Сообщения: 423
Зарегистрирован: 2012.12.10, 14:19
Откуда: Россия

Re: renderPartial 2 шаблона по очереди

Сообщение shkarbatov »

Да и ко всему прочему ваш код не даст вывод каждого шаблона по порядку, а только оба вместе.

В моем случае должно:
Отрисовался index1 (5 сек)
Отрисовался index2 (5 сек)

Как по вашему коду:
Отрисовался index1 index2 (10 сек)

Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

Re: renderPartial 2 шаблона по очереди

Сообщение anton44eg »

Код: Выделить всё

public function actionIndex()
    {
        $tpl = $this->renderPartial('index', array(), true);
        $tpl2 = $this->renderPartial('index2', array(), true);
        echo CJSON::encode(array($tpl, $tpl1));
    }  

shkarbatov
Сообщения: 423
Зарегистрирован: 2012.12.10, 14:19
Откуда: Россия

Re: renderPartial 2 шаблона по очереди

Сообщение shkarbatov »

1public function actionIndex()
2 {
3 $tpl = $this->renderPartial('index', array(), true);
4 $tpl2 = $this->renderPartial('index2', array(), true);
5 echo CJSON::encode(array($tpl, $tpl1));
6 }

Вы понимаете, что они сгенерятся оба шаблона, и до начала обработки 5 строки у нас будут срендерены 2 шаблона, но при этом пользователь еще не увидет не один, а мне надо что бы до того как начнется обрабатываться 2 шаблон, первый уже был на экране.

Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

Re: renderPartial 2 шаблона по очереди

Сообщение anton44eg »

у вас так долго рендерятся шаблоны?

shkarbatov
Сообщения: 423
Зарегистрирован: 2012.12.10, 14:19
Откуда: Россия

Сообщение shkarbatov »

ДА!!!! Бинго!!!

Дело даже не в том, что они рендерятся так долг.
Мне сейчас важно разобраться с этим и реализовать поочередную загрузку.

Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

Re: renderPartial 2 шаблона по очереди

Сообщение anton44eg »

блин, вставьте в первый шаблон аякс подгрузку второго

P.S. По-моему вы извращением занимаетесь

shkarbatov
Сообщения: 423
Зарегистрирован: 2012.12.10, 14:19
Откуда: Россия

Re: renderPartial 2 шаблона по очереди

Сообщение shkarbatov »

На количество завязываться нельзя. Шаблон используется один и тот же.

Ответить