renderPartial 2 шаблона по очереди
-
- Сообщения: 423
- Зарегистрирован: 2012.12.10, 14:19
- Откуда: Россия
renderPartial 2 шаблона по очереди
Всем, добрый вечер.
Есть шаблон, он отправляет ajax submit в контроллер, в контроллере данные подставляются в шаблон через renderPartial, затем в этом же методе происходит renderPartial другого шаблона.
Подскажите пожалуйста, как сделать так, что бы срендерить первый шаблон, вывести его на экран, затем рендерить второй шаблон и его тоже потом выводить при этом, оба шаблона должны появляться по нажатию на одну кнопку?
Или надо делать 2 отдельных запроса?
Всем, спасибо!
Есть шаблон, он отправляет ajax submit в контроллер, в контроллере данные подставляются в шаблон через renderPartial, затем в этом же методе происходит renderPartial другого шаблона.
Подскажите пожалуйста, как сделать так, что бы срендерить первый шаблон, вывести его на экран, затем рендерить второй шаблон и его тоже потом выводить при этом, оба шаблона должны появляться по нажатию на одну кнопку?
Или надо делать 2 отдельных запроса?
Всем, спасибо!
Re: renderPartial 2 шаблона по очереди
два раза вызвать renderPartial?
Re: renderPartial 2 шаблона по очереди
Возвращайте содержимое в 2 разных div, например,
Затем в ajax success разбирайте ответ с помощью jquery.
А если надо просто вывести один шаблон за другим, то просто 2 раза вызываем renderPartial, как anton44eg подсказал выше.
Код: Выделить всё
<div class="data_div1"><?renderPartial($view1, $data);?></div>
<div class="data_div2"><?renderPartial($view2, $data);?></div>
А если надо просто вывести один шаблон за другим, то просто 2 раза вызываем renderPartial, как anton44eg подсказал выше.
-
- Сообщения: 423
- Зарегистрирован: 2012.12.10, 14:19
- Откуда: Россия
Re: renderPartial 2 шаблона по очереди
Так то оно так, вызвать renderPartial однозначно надо будет 2 раза, вопрос в том, возможно ли дергать контроллер только один раз.
То есть дернуть сервер, выполнить renderPartial первый раз, вернуть запрос, затем дернуть renderPartial второй раз.
Просто что бы не дергать лишний раз контроллер. Но как я понял, так сделать не получится, так как 1 запрос, 1 ответ, 1 jquery обработчик.
Так?
То есть дернуть сервер, выполнить renderPartial первый раз, вернуть запрос, затем дернуть renderPartial второй раз.
Просто что бы не дергать лишний раз контроллер. Но как я понял, так сделать не получится, так как 1 запрос, 1 ответ, 1 jquery обработчик.
Так?
-
- Сообщения: 423
- Зарегистрирован: 2012.12.10, 14:19
- Откуда: Россия
Re: renderPartial 2 шаблона по очереди
Необходимо по порядку выводить 2 разных шаблона. При том, что контроллер можно дергать только один раз.
Re: renderPartial 2 шаблона по очереди
Код: Выделить всё
public function actionIndex()
{
$this->renderPartial('index');
$this->renderPartial('index2');
}
-
- Сообщения: 423
- Зарегистрирован: 2012.12.10, 14:19
- Откуда: Россия
Re: renderPartial 2 шаблона по очереди
А как он будет знать куда ему рендерится?
Так у меня идет запрос, выполняется и javascript уже вставляет его.
Так у меня идет запрос, выполняется и javascript уже вставляет его.
Re: renderPartial 2 шаблона по очереди
всмысле куда?
-
- Сообщения: 423
- Зарегистрирован: 2012.12.10, 14:19
- Откуда: Россия
Re: renderPartial 2 шаблона по очереди
У меня генерится шаблон, затем по нажатию на кнопку добавляется новый шаблон внутрь текущего на определенную позицию, затем 3 раза генерится этот же шаблон только уже с другими параметрами и каждый вставляется за последним добавленным.
Надо реализовать поочередную загрузку.
Надо реализовать поочередную загрузку.
Re: renderPartial 2 шаблона по очереди
Не понимаю что вам непонятно, вы и так уже все описали
-
- Сообщения: 423
- Зарегистрирован: 2012.12.10, 14:19
- Откуда: Россия
Re: renderPartial 2 шаблона по очереди
<body>
Какой-то текст, который есть с самого начала 1
Какой-то текст, который есть с самого начала 2
Сюда надо вставить текст по нажатию
Сюда надо вставить новый текст по 1 нажатию
Сюда надо вставить новый текст по 1 нажатию
Какой-то текст, который есть с самого начала 3
Какой-то текст, который есть с самого начала 4
</body>
Куда оно будет вставлять содержимое с учетом вышеописанного кода?
Какой-то текст, который есть с самого начала 1
Какой-то текст, который есть с самого начала 2
Сюда надо вставить текст по нажатию
Сюда надо вставить новый текст по 1 нажатию
Сюда надо вставить новый текст по 1 нажатию
Какой-то текст, который есть с самого начала 3
Какой-то текст, который есть с самого начала 4
</body>
Код: Выделить всё
public function actionIndex()
{
$this->renderPartial('index');
$this->renderPartial('index2');
}
-
- Сообщения: 423
- Зарегистрирован: 2012.12.10, 14:19
- Откуда: Россия
Re: renderPartial 2 шаблона по очереди
Можно ли это все сделать по одному запросу (по нажатию кнопки) и сформировать каждый в одном контроллере отдавая результат по частям?
-
- Сообщения: 423
- Зарегистрирован: 2012.12.10, 14:19
- Откуда: Россия
Re: renderPartial 2 шаблона по очереди
Понимаете:
renderPartial просто добавляет новый шаблон в конец уже существующего.
А мне надо в середину существующего, а не в конец.
renderPartial просто добавляет новый шаблон в конец уже существующего.
А мне надо в середину существующего, а не в конец.
-
- Сообщения: 423
- Зарегистрирован: 2012.12.10, 14:19
- Откуда: Россия
Re: renderPartial 2 шаблона по очереди
Да и ко всему прочему ваш код не даст вывод каждого шаблона по порядку, а только оба вместе.
В моем случае должно:
Отрисовался index1 (5 сек)
Отрисовался index2 (5 сек)
Как по вашему коду:
Отрисовался index1 index2 (10 сек)
В моем случае должно:
Отрисовался index1 (5 сек)
Отрисовался index2 (5 сек)
Как по вашему коду:
Отрисовался index1 index2 (10 сек)
Re: renderPartial 2 шаблона по очереди
Код: Выделить всё
public function actionIndex()
{
$tpl = $this->renderPartial('index', array(), true);
$tpl2 = $this->renderPartial('index2', array(), true);
echo CJSON::encode(array($tpl, $tpl1));
}
-
- Сообщения: 423
- Зарегистрирован: 2012.12.10, 14:19
- Откуда: Россия
Re: renderPartial 2 шаблона по очереди
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 шаблон, первый уже был на экране.
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 шаблон, первый уже был на экране.
Re: renderPartial 2 шаблона по очереди
у вас так долго рендерятся шаблоны?
-
- Сообщения: 423
- Зарегистрирован: 2012.12.10, 14:19
- Откуда: Россия
Re: renderPartial 2 шаблона по очереди
блин, вставьте в первый шаблон аякс подгрузку второго
P.S. По-моему вы извращением занимаетесь
P.S. По-моему вы извращением занимаетесь
-
- Сообщения: 423
- Зарегистрирован: 2012.12.10, 14:19
- Откуда: Россия
Re: renderPartial 2 шаблона по очереди
На количество завязываться нельзя. Шаблон используется один и тот же.