Cómo crear select sin modelo y reenvio al modificarlo
Cómo crear select sin modelo y reenviarlo al modificarlo
En ocasiones es necesario crear un select sin modelo, para estos casos dejo este manual.
Dentro del action de tu controller debes escribir lo siguiente, en primer lugar un arreglo con esa estructura ó puedes obtenerla de una base de datos.
En mi caso quiero que aparesca una lista de años, a cual uso para filtrar una gráfica.
...
$selectAnios = [ 2019 => "2019" , 2020 => "2020" , 2021 => "2021" , 2022=>"2022", 2023=>"2023" ];
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
'selectAnios' => $selectAnios,
'anio' => $anio
]);
..........
$selectAnios = [ 2019 => "2019" , 2020 => "2020" , 2021 => "2021" , 2022=>"2022", 2023=>"2023" ];
return $this->render('index', [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
'selectAnios' => $selectAnios,
'anio' => $anio
]);
..........
En la vista deberás agregar lo siguiente.
<?=Html::beginForm(['phising/'], 'get'); ?>
<div class="form-group">
<label for="exampleFormControlSelect1">Seleccione año para gráficas</label>
<?=Html::dropDownList('anio',$anio,$selectAnios,['class'=>'form-control','onchange'=>'this.form.submit()'] )?>
</div>
<?=Html::endForm();?>
<div class="form-group">
<label for="exampleFormControlSelect1">Seleccione año para gráficas</label>
<?=Html::dropDownList('anio',$anio,$selectAnios,['class'=>'form-control','onchange'=>'this.form.submit()'] )?>
</div>
<?=Html::endForm();?>
Nota que el select se llama 'anio', el cual cuando el usuario cambia el select se reenvía el formulario.
Comentarios
Publicar un comentario