Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/12/2011, 06:10
mayte_luna_86
 
Fecha de Ingreso: diciembre-2011
Mensajes: 4
Antigüedad: 13 años
Puntos: 0
Guardar datos en array bidimensional

Hola muy buenas a todos y gracias de antemano por interesaros en este tema. Estoy haciendo un ejercicio en el que tengo que crear una tabla de forma dinámica pidiendo el número de filas y número de columnas, además tengo que pedir un valor para cada celda a través del prompt. Quiero guardad esos valores en un array bidimensional que quede como en la tabla y lo que hago es a la hora de introducir el valor en la tabla lo introduzco también en el array. El problema viene cuando pido mas de una fila, si pido dos filas y dos columnas, que debería pedir 4 valores, me pide 3 valores y cuando quiero mostrar los valores me muestra 2 además no me muestra la tabla en la página. Si comento la parte en la que guardo el valor en el array no pasa nada de esto.
Por cierto, si uso herramientas para desarrolladores en Google Chrome me sale el error "cannot set property '0' of undefined" justo debajo de la parte en la que guardo el valor en el array.
Espero haberme explicado lo mejor posible y muchas gracias de antemano. Un saludo a todos ;)

Código Javascript:
Ver original
  1. <html>
  2.  
  3.     <head>
  4.         <script style="text/javascript">
  5.         var fila;
  6.         var columna;
  7.         var numero;
  8.         var arrayTabla= new Array(numf);
  9.         var numf; //numero filas
  10.         var numc; //numero columnas
  11.         function generar(){
  12.             //cojo los datos del id que solicito
  13.             fila=document.getElementById('filas');
  14.             //paso el dato a entero
  15.             numf=parseInt(fila.value);
  16.            
  17.             columna=document.getElementById('columnas');
  18.             numc=parseInt(columna.value);
  19.             //creo el array bidimensional para guardar los datos de la tabla tal y como está en ésta
  20.             for (i=0;i<arrayTabla.length;i++) arrayTabla[i]= new Array(numc);
  21.             //creo la tabla
  22.             tabla=document.createElement("table");
  23.             tabla.border=1;
  24.             tabla.id="t";// añado id a la tabla
  25.            
  26.            
  27.             //creamos las celdas de la tabla e introducimos los datos en la celda y en el array bidimensional
  28.             for (var i=0;i<numf;i++){
  29.             //recorremos el array de filas creándolas con tr
  30.                 var fila1=document.createElement("tr");
  31.                 //lo mismo con td
  32.                 for (var j=0;j<numc;j++){
  33.                     //lo mismo con td
  34.                     var columna1=document.createElement("td");//creamos una celda
  35.                     numero=prompt("Intro valor: ");
  36.                     arrayTabla[i][j]=numero; //introduzco el valor en el array
  37.                     //creo un texto para dentro de cada td y le pongo el valor de número
  38.                     var texto=document.createTextNode(numero);
  39.                    
  40.                     columna1.appendChild(texto);//enlazamos hijos con padres
  41.                     fila1.appendChild(columna1);
  42.                 }
  43.                 tabla.appendChild(fila1);
  44.                
  45.             }
  46.             bodyP.appendChild(tabla);
  47.            
  48.         }
  49.    
  50.        
  51.         function mostrar(){ //funcion para mostrar los valores de cada celda
  52.            
  53.             for(i=0;i<arrayTabla.length;i++){
  54.                
  55.                 for (j=0;j<arrayTabla[i].length;j++){
  56.                    
  57.                     alert("valor celda: "+arrayTabla[i][j]);
  58.                    
  59.                 }
  60.             }
  61.         }
  62.        
  63.     </script>
  64.     </head>
  65.     <body id="bodyP">
  66.    
  67.         Filas<input type="text" id="filas" value=""></br>
  68.         Columnas<input type="text" id="columnas" value=""></br>
  69.         <input type="Button" value="generar" onclick="generar()">
  70.        
  71.         <input type="Button" value="mostrar" onclick="mostrar()"> </br>
  72.        
  73.        
  74.     </body>