public function actionAutocomplete($term) { $criteria = new CDbCriteria(); $criteria->compare('LOWER(apellido)', strtolower($_GET['term']), true); $criteria->compare('LOWER(nombre)', strtolower($_GET['term']), true, 'OR'); $criteria->order = 'apellido'; $criteria->limit = 30; //$criteria->with('persona'); $data = Personas::model()->findAll($criteria); if (!empty($data)) { $arr = array(); foreach ($data as $item) { $arr[] = array('id' => $item->id, 'value' => $item->nombre . ' ' . $item->apellido, 'label' => $item->nombre . ' ' . $item->apellido); } } else { $arr = array(); $arr[] = array('id' => '', 'value' => 'No se han encontrado resultados para su búsqueda', 'label' => 'No se han encontrado resultados para su búsqueda'); } echo CJSON::encode($arr); }
<tr> <th><?php echo CHtml::activeLabelEx(Personas::model(), 'nombre'); ?> </th> <th><?php echo CHtml::activeLabelEx(Personas::model(), 'apellido'); ?> </th> <th><?php echo CHtml::activeLabelEx(Personas::model(), 'sexo'); ?> </th> <th><?php echo CHtml::activeLabelEx(Personas::model(), 'cedula'); ?> </th> </tr> <?php foreach ($personas as $i => $persona) { ?> <tr> <td><?php echo CHtml::activeTextField($persona, "[{$i}]nombre"); ?> </td> <td><?php echo CHtml::activeTextField($persona, "[{$i}]apellido"); ?> </td>
public function actionBatchUpdate() { // Recuperando registros para ser actualizados en modo por lotes // asumiendo que cada registro es un modelo de la clase 'Persona' $personas = Personas::model()->findAll(); if (isset($_POST['Personas'])) { $validos = true; foreach ($personas as $i => $persona) { if (isset($_POST['Personas'][$i])) { $persona->attributes = $_POST['Personas'][$i]; $persona->save(); } $validos = $persona->validate() && $validos; } if ($validos) { // Si todos los registros son validos $this->redirect(array('index')); } } // Presenta la vista para colectar datos tabulares $this->render('batchUpdate', array('personas' => $personas)); }