alex4answ
@alex4answ

Как правильно работать с renderAjax?

Добрый день, пытаюсь понять как работать с renderAjax.

И почти все понятно, кроме того, как работать с ответом

Например, у меня есть форма, я отправляю ее и в ответ я жду Alert.

Делаю renderAjax('myalert');

вот вид myalert:
<?php
use yii\bootstrap\Alert;
?>
<?php Alert::begin([
    'options' => [
        'class' => 'alert-danger',
    ],
    'closeButton' => false,
]);?>
    <h4 class="alert-heading">Ошибка!</h4>
    <p>Ну и описание собственно.</p>
<?php Alert::end();?>


Ответ приходит с скриптами, бутстрап и jquery, но они уже подключены на страницу, выходит я не могу просто взять и вставить ответ в тело страницы.

Как вообще обрабатывать подобное?

Я знаю что вопрос простой, но я не могу наяндексить это, везде просто объяснение разницы между между render и renderAjax
  • Вопрос задан
  • 2661 просмотр
Решения вопроса 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Вам надо отправить ajax запрос на сервере его обработать и вернуть ответ. Что бы не получать на ajax запросы веcь html с layout и т.д. Есть метод renderAjax. Тоесть метод не делает ajax, он отдает данные для ajax. Он ничего никуда не вставляет. Вставлять вы должны в js в том месте где Вы отправляете ajax запрос. Где код который отправляет ajax запрос?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
mosesfender
@mosesfender
Меланхолик, параноик, падал с коек
Так понимаю, нужен просто некий объект в JSON'е.
renderAjax - это то же самое, что и renderPartial, только подключает css и js к ответу.

А если нужен сериализованный ответ, то нужно как-то так:

public function actionAnyAction() {
…
        return $this->asJson($anyObject);
    }
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы