Difference between #1 and #2 of
Como trasponer una lista creada con CHtml::checkBoxList

Changes

Title unchanged

Como trasponer una lista creada con CHtml::checkBoxList

Category unchanged

Tips

Yii version unchanged

Tags changed

checkbox, table, tabla, horizontal, style, estilo

Content changed

[...]
```php
CHtml::checBoxList("weekdays","",array(
"0"=>"Domingo",
"
01"=>"Lunes", "02"=>"Martes", "03"=>"Miercoles", "04"=>"Jueves", "05"=>"Viernes", "06"=>"Sabado",
))
```
[...]
el sistema genera una lista en vertical similar a esta:

[foto pendiente]
 
La idea es que esta lista se pueda mostrar en forma de tabla, con unos encabezados usando th y los checkbox como filas, para esto vamos a realizar algunos pasos
 
 
-  Crear dos variables de texto, una que contenga el encabezado y la otra el cuerpo, pueden ser:
 
 
 
 
 
```php 
$header="";
 
$body="";
 
```
 
 
- Luego van a crear el fragmento de codigo para generar la lista de checkboxes de esta forma:
 
 
 
 
```php 
$var=CHtml::checkBoxList("days","",array(
 
"0"=>"Domingo",
 
"1"=>"Lunes",
 
"2"=>"Martes",
 
"3"=>"Miercoles",
 
"4"=>"Jueves",
 
"5"=>"Viernes",
 
"6"=>"Sabado",
 
),array(
 
"template"=>"\$header.='<th>{label}</th>';\$body.='<td>{input}</td>;'",
 
"separator" => "",// es necesario eliminar el separador
 
//Estos parametros son opcionales
 
"checkAll"=>"T",
 
"style" => "width: 10px;",
 
));
 
```
 
 
Como puede ver en vez de enviar con un echo la construccion del checkBoxList, lo enviamos a una variable para evaluar el resultado
 
 
- Teniendo la construccion de la lista debe evaluar la variable para que ejecute el resultado de la generacion como codigo, de esta forma se llenan los dos bloques de codigo que se necesitan para la tabla
 
 
 
```php 
eval($var);
 
```
 
 
Con este paso se asegura que las variables definidas anteriomente sean rellenadas con la informacion de la lista
 
 
- ahora debe construir la tabla que va a contener los dos bloques de codigo de esta forma:
 
 
 
 
```php 
<table>
 
<tr><?php echo $header?></tr>
 
<tr><?php echo $body?></tr>
 
</table>
 
```
 
 
Listo, la construccion deberia generar los valores de forma horizontal en vez de vertical. En sintesis este es todo el codigo:
 
 
 
 
 
```php 
$header = "";
 
 $body = "";
 
     $var = CHtml::checkBoxList("fieldoptions", "", array(
 
                    "0" => "D",
 
                    "1" => "L",
 
                    "2" => "M",
 
                    "3" => "M",
 
                    "4" => "J",
 
                    "5" => "V",
 
                    "6" => "S",
 
                        ), array("template" => "\$header.='<td>{label}</td>';
 
                            \$body.='<td>{input}</td>';",
 
                    "separator" => "",
 
                    "checkAll" => "T",
 
                    "style" => "width: 10px;",
 
                ));
 
        eval($var);
 
```
 
 
```php 
<table>
 
<tr><?php echo $header?></tr>
 
<tr><?php echo $body?></tr>
 
</table>
 
```
 
 
Y listo, de esta manera tiene una lista de checkboxes en forma de tabla y horizaontalmente, si quiere dividir la informacion en dos grupos podria en vez de usar una variable de texto reemplazarlo por arreglos para cargar de forma indovidual los resultados de cada checkbox y por ciclos ubicarlos donde desee y como desee.
 
 
 
 
 
2 0
4 followers
Viewed: 18 334 times
Version: 1.1
Category: Tips
Written by: rdjteam
Last updated by: rdjteam
Created on: Oct 12, 2011
Last updated: 13 years ago
Update Article

Revisions

View all history