==== Realizar una acción para varias filas de un grid ====
- Modificamos la vista:
* Incluimos el Gridview dentro de una form:
$form=$this->beginWidget('CActiveForm', array(
'id'=>'MODELO-form',
'action'=>CHtml::normalizeUrl(array('ACCION')),
'enableAjaxValidation'=>false,));
* En el Gridview incluimos:
$this->beginWidget('zii.widgets.grid.CGridView', array(
...
'selectableRows'=>999,
...
array(
'class'=>'CCheckBoxColumn',
'id'=>'CLASE_IDS'
),
* Añadimos campos adicionales si queremos, que se enviarán junto a la lista de id's, y un botón submit
- En el controlador creamos la acción, recogemos la lista de id's de la forma habitual y la procesamos:
$ids=$_POST["CLASE_IDS"]; //lista de seleccionados
if(!$ids) {
throw new CExcepcion(404,"No se han seleccionado elementos! ");
}
foreach (CLASE::model()->findAllbyPk($ids) as $obj){
...
$obj->save();
}
$this->redirect(array('admin'));