// вначале файла
use common\models\TieClass;
$form->field($model, 'class')->dropDownList(TieClass::getAll(), ['prompt' => 'Тип документа:',
'onchange' => '
$.post(
"path/to/controller/action",
{id : $(this).val()},
function(data){
// обрабатываете ответ сервера
}
)'
])
public function actionUpdate($id)
{
if( Yii::$app->request->isAjax){
$model = $this->findModel($id);
if ($model->load(Yii::$app->request->post()) && $model->validate()) {
$model->class = key($_POST); // что это?!! зачем?!!
if($model->save(false)){
return $this->redirect(['view', 'id' => $model->id]);
}
} else {
return $this->render('update', [
'model' => $model,
]);
}
}
}
Да суть в том что контроллер с экшеном у меня по другому называются, видимо в сборке что то не так.
Для начала Вы должны правильно указать путь к обработчику.
Вот когда Вы точно будете попадать в нужное действие, вот тогда и будете отлавливать ошибку.
У Вас в дебаг-панели есть вкладка для контроля ajax запросов, смотрите в ней, что за ошибки возникают.
Так же на вкладке "сеть", в консоли браузера, Вы можете контролировать запросы к серверу и видеть, что они передают, что принимают.
Сейчас у Вас 400 ошибка, значит с путями у Вас проблема.
Вы уверены?
Если в urlManager не описаны правила для обработки запроса по этому пути
'/launch/update?id={$id}'
то ничего Вы не получите, кроме 400, 404 ...