20/11/2019, 12:25
|
| | | Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 10 meses Puntos: 12 | |
Respuesta: colspan en tabla Cita:
Iniciado por tuadmin La solucion puede que paresca mas complicada pero en realidad es mas Simple de lo que parece, Solo debes entender como funciona el Proceso de PHP
puedes Tener Categorias, 1 a la N, eso hara que cresca Horizontalmente, y tu HTML, tendrias que generar Primero las Cabeceras y su tamaño COLSPAN, y una vez termines las cabeceras IR por los datos, haber te ilustro con este codigo.
se diferencia un poco de tu ejemplo de tabla, pero para obtener el mismo resultado de tu tabla de ejemplo, solo has tus cambios, pero el proceso seria el Mismo Código PHP: <?php $datos_mysql=array( array("nombre"=>'Categoria A'), array("nombre"=>'Categoria B'), array("nombre"=>'Categoria C'), ); //Ignora esta funcion es para ilustrarte el WHILE function simular_mysql_fetch_assoc(&$categorias){ static $pointer=0; if(isset($GLOBALS['datos_mysql'][$pointer])){ return $GLOBALS['datos_mysql'][$pointer++]; } return false; } //Esta funcion solo es un ejemplo para obtener los datos que van acompañando la categoria function devuelve_elemenos_de_X_categoria($categoria_nombre){ $n_campos = rand(2,5); $datos_array=array();//suponiendo que proviene de una consulta MYSQL for($i=0;$i<$n_campos;$i++){ $datos_array[$i] = rand(1,9); } return $datos_array; } //Creamos una Variable ARRAY que contendra los Campos debajo de cada Categoria $campos_de_categorias=array();//Cada elemento del array, sera un TD de la TABLA echo '<table border="1" cellspacing="0" cellpadding="0">'; //Primero Obtenemos Los 1 a la N campos de cada Categoria y //luego solo mostramos el Nombre de la categoria con su Colspan COrrespondiente echo ' <tr>';//Iniciamos la FILA de las categorias while($row_categorias = simular_mysql_fetch_assoc($categorias)){ //Primero obtenemos los elementos de cada categoria para asi tener el COLSPAN $N_COLSPAN = 0; $campos_de_categoria = devuelve_elemenos_de_X_categoria($row_categorias['nombre']); foreach ($campos_de_categoria as $key => $value) { //llenamos nuestro Contenedor de Categorias $campos_de_categorias $campos_de_categorias[] = $value; $N_COLSPAN = $N_COLSPAN +1;//O tambien $N_COLSPAN++; } //$N_COLSPAN = $N_COLSPAN == 0?1:$N_COLSPAN; //No puede haber un Colspan 0, por que el hecho de haya una categoria eso es 1 celda si o si if($N_COLSPAN==0){ $N_COLSPAN=1; $campos_de_categorias[]='';// un Campo Vacio } echo ' <td width="94" colspan="'.$N_COLSPAN.'" valign="top"><p>'. $row_categorias['nombre'] .'</p></td>'; } echo ' </tr>'; echo ' <tr>';//Iniciamos la FILA de los campos de categorias foreach ($campos_de_categorias as $td) { //Un td que es dinamico no deberia tener un WIDTH echo ' <td valign="top"><p>'.$td.'</p></td>'; } echo ' </tr>'; echo ' <tr>'; echo ' <th width="94" colspan="'.count($campos_de_categorias). '" valign="top"><p> Piesito de tabla</p></th>'; echo ' </tr>'; echo '</table>'; puedes probar ese codigo en este sitio WEB para que veas el resultado http://phptester.net TE AGRADEZCO MUCHO |