Sigueme por RSS! RSS

Resaltando celdas en las tablas con Codeigniter

Codeigniter dispone de varias librerías que te facilitan mucho el trabajo, una de ellas es table.

La Clase de Tabla provee funciones que le permite autogenerar una tabla HTML desde arreglos o juegos de resultados de base de datos.

Como la documentación es bastante extensa, no es necesario explicar el funcionamiento de la clase, así que voy directo al grano y dejo como ejemplo el como abordé el caso en su momento. Al final conseguiremos algo similar a la siguiente imagen:


Donde resaltamos para el ejemplo, celdas aleatorias.

Sabemos que podemos establecer el encabezado de la tabla usando:
$this->table->set_heading()

y que podemos agregar una nueva fila usando:
$this->table->add_row()

o armar un arreglo y pasarlo luego a:
$this->table->generate()

el código de ejemplo:
// se arman los cabezales de la tabla
$arrHeading = array('filas / columnas','columna 1','columna 2'
,'columna 3','columna 4','columna 5','columna 6','columna 7'
,'columna 6','columna 7','columna 8');

// se establece el heading
$this->table->set_heading($arrHeading);

// este array almacenara todas la filas
$arrRows = array();

// estos seran los datos usados para empezar cada fila
$arrFilas = array('fila1','fila2','fila3','fila4','fila5');

/* por cada fila y luego por cada columna hay que ir agregando los datos de cada celda 
* y resaltar el que se requiera..
*/
foreach($arrFilas as $id => $fila){

   // este sera el array que usaramos para almacenar
   // los datos de la fila entera
   $arrNuevaFila = array($fila);

   foreach($arrHeading as $id => $sCadena){

      //no quiero que imprima para este caso, el primer valor del array
      if($id==0) continue;

      // indicamos que resalte una celda cualquiera
      $resaltar = (rand(0,4) == 2 ? true : false);

      $arrNuevaFila[] = ($resaltar ? '<div id="celda_resaltada">'
                        .$sCadena.'</div>' : '<span>'.$sCadena.'</span>');
   }
   // agregamos la nueva fila
   $arrRows[] = $arrNuevaFila; 
}

// generamos la tabla
$datos['sTabla'] = $this->table->generate($arrRows);

Si te fijas, notaras que al final asigno el resultado de la tabla al arreglo $datos, eso es porque lo armamos desde el controlador y luego en la vista se imprime, claro está que hay que pasar los datos al view.
// cargamos  la interfaz
$this->load->view('ejemplo_v', $datos);

y en la view es tan fácil como utilizar un echo:
if (isset($sTabla))
    echo $sTabla;

por ultimo el estilo de ejemplo:
#celda_resaltada{
    background : #FFFF99;
    border : 1px dotted #FFCC33;
    widht: 100%;
    font-weight : bold;
}

los datos usados para llenar la tabla obviamente son de ejemplo, haz de obtener los datos de algún modo, de tu base de datos, etc.

0 comentarios: Suscribete a los comentarios por RSS

Publicar un comentario

- Los comentarios están siendo moderados y serán publicados en la brevedad posible.