Можно сделать GET-запросом, но учитывая activeForm, мне ближе делать это через POST
Форма<?php $form = ActiveForm::begin([
'id' => 'get_users', //Добавляем ID для отслеживания в JS
'action' => \yii\helpers\Url::to(['ВАШ ЭКШН']) //Добавляем адрес, к которому пойдет запрос, если он отличается от текущего местоположения
]); ?>
<?= $form->field($model, 'field1')->dropDownList(\yii\helpers\ArrayHelper::map(User::find()->all(), 'id', 'username')); ?>
<?= Html::submitButton('Пробуем', ['class' => 'btn btn-info', 'id'=>'get_users_submit']); ?>
<?php ActiveForm::end(); ?>
<div id="rendered_user"></div>
Контроллерpublic function actionYouraction()
{
$request = Yii::$app->request;
if($request->isAjax){
Yii::$app->response->format = Response::FORMAT_JSON; //Если запрос аяксовый,то отвечаем JSON-ом
//Тут разбираете полученный запрос, пишете нужную логику, подтягиваете модель пользователя
return ['content'=>$this->renderAjax('_userdata', [ 'model' => $model])]; //Возвращаем JSON-массив в виде вьюшки, которой передаем модель пользователя или любые другие нужные данные
}
}
JS$(document).on('click' , '#get_users_submit' , function(e) {
e.preventDefault();
var target= $('#rendered_user'), //В этот блок выводим полученные данные
form = $('#get_users'), //Выбираем нашу форму
url = form.attr('action'), //Узнаем url для отправки
data = form.serializeArray(); //Сериализуем форму
$.ajax({
url: url,
method: 'POST',
data: data,
error: function (response) {
//Если ошибка запроса, то что-то делаем
},
success: function (response) {
//Если запрос прошел, то что-то делаем
//Контроллер вернет данные в переменную response, разберите её, выведите что нужно
console.log(response);
target.html(response.content);
},
});
});
Всё по памяти, код не проверял.
Суть вроде должна быть ясна.