Для вывода текста после отправки формы в Yii, вы можете использовать различные подходы, в зависимости от ваших потребностей. Вот несколько наиболее распространенных способов:
1. Использование метода setFlash()
и yiibootstrapAlert
:
- В контроллере, который обрабатывает вашу форму, вы можете добавить следующий код:
Yii::$app->session->setFlash('success', 'Текст, который вы хотите вывести после отправки формы');
- В представлении, где вы отображаете результат отправки формы, можете использовать следующий код:
<?php if (Yii::$app->session->hasFlash('success')): ?> <?= yiibootstrapAlert::widget([ 'options' => ['class' => 'alert-success'], 'body' => Yii::$app->session->getFlash('success'), ]) ?> <?php endif; ?>
- Этот код добавляет класс alert-success
к блоку с сообщением для создания зеленого фона.
2. Использование метода renderPartial()
для отображения контента внутри представления:
- В контроллере, который обрабатывает вашу форму, вам необходимо установить свойство layout
равным false
, чтобы представление не использовало общую обертку:
public $layout = false;
- Затем, после обработки формы, вы можете добавить следующий код для отображения сообщения:
return $this->renderPartial('имя_представления', ['message' => 'Ваше сообщение']);
- В представлении имя_представления
вы можете отобразить сообщение, используя переданные данные:
<div class="alert alert-success"><?= $message ?></div>
3. Использование AJAX-запросов и обновление содержимого элемента на странице:
- В вашем представлении, где находится форма, добавьте следующий скрипт для обработки события отправки формы:
$('#form-id').on('submit', function(event) { event.preventDefault(); // Отменить стандартное отправление формы $.ajax({ url: $(this).attr('action'), type: 'POST', data: $(this).serialize(), success: function(response) { $('#result').html(response); // Обновит содержимое элемента с id "result" } }); });
- В контроллере, который обрабатывает вашу форму, вы можете добавить следующий код:
if(Yii::$app->request->isAjax) { echo 'Текст, который вы хотите вывести после отправки формы'; Yii::$app->end(); }
- В представлении, вы можете добавить элемент с id "result", где будет отображаться результат отправки формы:
<div id="result"></div>
Каждый из этих подходов имеет свои преимущества и можно выбрать наиболее подходящий вариант, основываясь на требованиях вашего проекта.