Yii2 запустить JavaScript-код из Контроллера

282
12 апреля 2017, 14:44

Создаю свою форму регистрации, основанную на Yii2-user. Но это не суть. А суть в том, что из контроллера SiteController мне нужно выполнить js-код

Такой способ не работает:

echo "<script language='javascript'>$.snackbar({content: \"This is my awesome snackbar!\"});</script>";

Для особо любопытных - actionIndex

public function actionIndex()
{
    $model_register = \Yii::createObject(RegistrationForm::className());
    $model_login = \Yii::createObject(LoginForm::className());
    if ($model_register->load(\Yii::$app->request->post()) && $model_register->register()) {
        // Вот здесь нужно выполнить функцию
        echo "<script language='javascript'>$.snackbar({content: \"This is my awesome snackbar!\"});</script>";
    }
    if ($model_login->load(\Yii::$app->getRequest()->post()) && $model_login->login()) {
        return $this->goBack();
    }
    return $this->render('index',['model_register'=>$model_register, 'model_login'=>$model_login]);
}
Answer 1

Так нельзя поступать, js надо выполнять в представлении, но не в контроллере. Просто в представление прокиньте какой-нибудь флаг, который будет результатом проверки $model_register->load(\Yii::$app->request->post()) && $model_register->register(), и в зависимости от результата выводите или нет нужный js.

READ ALSO
Обновление DIV после загрузки страницы

Обновление DIV после загрузки страницы

Как с помощью jQuery обновить DIV после загрузки страницы?

255
Листалка списка jQuery. Как реализовать?

Листалка списка jQuery. Как реализовать?

Подскажите кто знает как реализовать листание списка?

266