@MaikMain
Начинающий backend - developer

Как сделать функцию «заказать звонок». Yii2?

Объясню ситуацию. Есть всплывающее окно, которое прописан в layouts. В нем 2 поля: имя и телефон.
Как мне получать данные, каким контроллером или как вообще? И где мне это обрабатывать?
spoiler
Yii::$app->mailer->compose('callback', [
                'name' => $this->name,
                'phone' => $this->phone,
                ])
                ->setFrom([Yii::$app->params['adminEmail'] => $this->name]) /* от кого */
                ->setTo($emailto) /* куда */
                ->setSubject('Заявка обратного звонка с сайта') /* имя отправителя */
                ->setTextBody($this->body) /* текст сообщения */
                ->send(); /* функция отправки письма */

Где мне нужно прописать этот код?
  • Вопрос задан
  • 226 просмотров
Решения вопроса 1
kimono
@kimono
Web developer
Оборачиваете форму отправки в Pjax и выносите это в отдельное вью, которое рендерите в модальном окне.
В форме указываете адрес для обработки, например ['/site/contact'].
В контроллере обрабатываете данные и рендерите эту же форму (вью) [$this->renderAjax('pjax-modal-form-view.php')].
Чтобы закрыть модальное окно при успешной отправке - передаёте во вью дополнительный параметр, а в самом вью добавляете js код, что-то вроде этого:
if (isset($result) && $result){
  $this->registerJs("$('#myModal').hide()");
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы