Creando Tablas Dinámicamente

Este script es una demostración de aplicación del soporte que los navegadores más actuales dan al DOM2 standar. Está basado en métodos como document.createElement, element.setAttribute o document.createTextNode entre otros. Su potencia para generar contenido dinámico sin petición al servidor o recarga de página es innegable. Está en consonancia, por lo tanto, con tendencias más actuales como AJAX cuya idea básica consiste en evitar en la medida de lo posible las cargas o recargas de páginas y en la centralización de los contenidos o servicios en el menor número de páginas haciendo la necesaria comunicación con el servidor de manera transparente para el visitante.

Este script puede ser utilizado por varias tablas de una misma página (modifique los parámetros de la función crearDinamicamenteTabla ) o ser cargada inicialmente con la página a través del atributo onload() del elemento body. Para el perfecto funcionamiento del script se debe utilizar Mozilla, Firefox o Internet Explorer 6.

Un artículo relacionado con este que le puede interesar es Ordenando tablas dinámicamente que. Para cualquier sugerencia o comentario no dude en ponerse en contacto con el autor.


Indice.

1.- Ejemplo de creación dinámica de tablas.


Número de filas: Número de columnas:


AQUI APARECERÁN LAS TABLAS CREADAS





2.- El código del script.

En <HEAD>:
<style>
.filaImpar {background-color :#F8F8FF; height:31px}
.filaPar {background-color :#E6E6FA;height:31px}
.celda {padding : 5px 5px 5px 5px;}
#tabla1{ border:1px solid navy; font-weight:bold;background-color : #00008B;}
</style>
<script>
if(navigator.appVersion.indexOf("MSIE") != -1) var IE = true;
function creaDinamicamenteTabla (divid, nf,nc) {
// vaciamos el contenedor para que no se añadan tablas sobre tablas
document.getElementById(divid).innerHTML = "";
// creamos la tabla
var mitabla = document.createElement("TABLE");
//añadimos el atributo "id" para relacionarla con un estilo
mitabla.setAttribute("id","tabla1");
// creamos el cuerpo de la tabla (TBODY)
var mitablabody = document.createElement("TBODY");
for (var j=0;j<nf;j++) {
// creamos la fila (TR)
var fila_actual=document.createElement("TR");
// añadimos estilo con el atributo "CLASS" a la fila segun sea par o impar y segun sea Mozilla o Internet Explorer
if(IE){
(j % 2 != 0)? fila_actual.setAttribute("className","filaImpar"):fila_actual.setAttribute("className","filaPar");
}
else (j % 2 != 0)? fila_actual.setAttribute("class","filaImpar"):fila_actual.setAttribute("class","filaPar");
for (var i=0;i<nc;i++) {
// creamos celda (TD)
var celda_actual=document.createElement("TD");
// añadimos estilo con el atributo "CLASS" a la celda segun sea Mozilla o Internet Explorer
if(IE){
celda_actual.setAttribute("className","celda");
}
else celda_actual.setAttribute("class","celda");
// creamos texto de la celda
var texto_celda=document.createTextNode("( "+(j+1)+", "+(i+1) +" )");
// añadimos el texto a la celda
celda_actual.appendChild(texto_celda);
// añadimos la celda a la fila actual
fila_actual.appendChild(celda_actual);
}
// añadimos la fila actual al cuerpo de la tabla
mitablabody.appendChild(fila_actual);
}
// añadimos el cuerpo de la tabla a la tabla
mitabla.appendChild(mitablabody);
// añadimos la tabla a su contenedor (DIV)
document.getElementById(divid).appendChild(mitabla);
}
</script>
En <body>, en el lugar que quiera que aparezca la tabla.
<div align="center">
<form name="formulario"
action="javascript:creaDinamicamenteTabla('contenedortabla',
document.formulario.numerofilas.value,
document.formulario.numerocolumnas.value)">
Número de filas: <select name="numerofilas">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
</select>
Número de columnas: <select name="numerocolumnas">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
</select>
</div><br></br>
<div align="center">
<div id="contenedortabla"
style="height:300px;width:60%;border:1px dotted navy;">
<div style="padding-top:50"></div>AQUI APARECERÁ LA TABLA
</div></div>
<br></br>
<div align="center"><input type="submit" value="CREAR TABLA"></input></div>
</form>



Añadir a Favoritos Internet Explorer

Menú

Categorías


Lo Último

  Mis programas  Matemáticas  Geometría  Programación WEB  Flash MX  Variados
Dedicado a ANGELES y a RAMON.
Realizado por José Antonio López Lorenzo (JALL)
Vigo - Galicia - España -Europa