Foros del Web » Programando para Internet » Javascript »

guardar tabla dinamica en array bidimensional

Estas en el tema de guardar tabla dinamica en array bidimensional en el foro de Javascript en Foros del Web. Hola amigos, soy novato en esto, quisieran que me ayudaran. Me ocurre lo siguiente, creo la tabla dinamicamente con javascript guardo toda la base de ...
  #1 (permalink)  
Antiguo 19/02/2011, 12:17
 
Fecha de Ingreso: octubre-2009
Mensajes: 21
Antigüedad: 14 años, 7 meses
Puntos: 0
Pregunta guardar tabla dinamica en array bidimensional

Hola amigos, soy novato en esto, quisieran que me ayudaran.

Me ocurre lo siguiente, creo la tabla dinamicamente con javascript guardo toda la base de datos a travez de una for anidado.

tbl : es el id de la tabla

function capturaData()
{
var total=document.getElementById("tbl").rows.length;
basedeDatos=new Array();

for (var i=1; i<=total; i++) {
basedeDatos[i]=new Array();
for (var k=0; k<=4; k++){
basedeDatos[i][k]=document.getElementById("tbl").rows[i].cells[k].innerHTML;
}
}

return basedeDatos; // creo que aqui es el error por no me devuelve ningún registro
}

function aplicar()
{
array=capturaData();
window.location.href='frmVerTabla.php?array='+arra y+'&bdd=<?php echo $_GET['bdd'];?>&s=<?php echo $_GET['s'];?>&u=<?php echo $_GET['u'];?>&c=<?php echo $_GET['c'];?>';
}


ese el código que estoy trabajando la función capturaData() claro no lo hace. pero quisiera que guarde todas las filas de la tabla creada dinamicamente , supongo que debe de hacerlo en el arreglo basedeDatos y devolverlo a la función aplicar() para capturarlo mediante $_GET[] en php y guardarlo en un base de datos mysql.

Realmente me gustaria que me ayuden en este tema . muxisimas gracias.
  #2 (permalink)  
Antiguo 19/02/2011, 12:49
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: guardar tabla dinamica en array bidimensional

buenas...

asi a ojo, la funcion capturaData debe estar funcionando correctamente. para comprobarlo, realiza alguna salida visible del array (alert, console.log, o el que gustes). el problema debe ser en aplicar. fijate que estas agregando el array al string sin antes tratarlo. asegurate que el contenido capturado no tenga caracteres especiales. para ello tendras que pasar el array por encodeURIComponent.

__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 19/02/2011, 13:53
 
Fecha de Ingreso: octubre-2009
Mensajes: 21
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: guardar tabla dinamica en array bidimensional

function capturaData()
{
var total=document.getElementById("tbl").rows.length;
basedeDatos=new Array();

for (var i=1; i<=total; i++) {
basedeDatos[i]=new Array();
for (var k=0; k<=4; k++){
basedeDatos[i][k]=document.getElementById("tbl").rows[i].cells[k].innerHTML;
}
}
//reliazo aki el alert(basedeDatos); //pero no me imprime nada
return basedeDatos; // creo que aqui es el error por no me devuelve ningún registro
}

function aplicar()
{
array=capturaData();
window.location.href='frmVerTabla.php?array='+arra y+'&bdd=<?php echo $_GET['bdd'];?>&s=<?php echo $_GET['s'];?>&u=<?php echo $_GET['u'];?>&c=<?php echo $_GET['c'];?>';
}
  #4 (permalink)  
Antiguo 19/02/2011, 14:02
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: guardar tabla dinamica en array bidimensional

esa primera parte ya lo estas haciendo correctamente. vuelvo a recalcar...
Cita:
el problema debe ser en aplicar. fijate que estas agregando el array al string sin antes tratarlo. asegurate que el contenido capturado no tenga caracteres especiales.
otro detalle que se me paso por alto, tambien puede depender de la longitud del contenido. algunos navegadores no te permiten enviar excesivo datos por url. en tal caso tendrias que utilizar el metodo POST de un formulario. por javascript, la unica forma que se puede lograr un POST es mediante AJAX. fuera de eso no hay otra alternativa.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 19/02/2011, 14:02
 
Fecha de Ingreso: octubre-2009
Mensajes: 21
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: guardar tabla dinamica en array bidimensional

tambien lo e exo de esta manera pero sigue el error la verdad no c q hacer porfavor ayudenme..

function capturaData()
{
var total=document.getElementById("tbl").rows.length;
basedeDatos=new Array();

for (var i=1; i<=total; i++) {
basedeDatos[i]=new Array();
for (var k=0; k<=4; k++){
basedeDatos[i][k]=document.getElementById("tbl").rows[i].cells[k].innerHTML;
}
}
alert(basedeDatos[1][2]);
// return basedeDatos;
}
  #6 (permalink)  
Antiguo 19/02/2011, 14:07
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: guardar tabla dinamica en array bidimensional

si quitas el return de la funcion capturaData, entonces la variable array de aplicar es undefined porque la funcion no devuelve otro valor. en ese caso, en lugar de usar la variable array tendrias que utilizar la variable basedeDatos ya que es global cuando se invoca capturaData. pero sigue siendo el mismo cuento.

¿has seguido las sugerencias? ¿has comprobado los datos devuelto por la funcion capturaData? ¿que error te devuelve y en donde? si no has hecho nada de esto NO te puedo ayudar.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #7 (permalink)  
Antiguo 19/02/2011, 14:15
 
Fecha de Ingreso: octubre-2009
Mensajes: 21
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: guardar tabla dinamica en array bidimensional

realmente te pido muxisimas gracias, por seguirme es este problema , si lo e echo cuando imprimo el array en la funcion capturaData() solo en esa funcion no en la otra osea hago esto :


function capturaData()
{
var total=document.getElementById("tbl").rows.length;
basedeDatos=new Array();

for (var i=1; i<=total; i++) {
basedeDatos[i]=new Array();
for (var k=0; k<=4; k++){
basedeDatos[i][k]=document.getElementById("tbl").rows[i].cells[k].innerHTML;
}
}
alert(basedeDatos[1][2]);
// return basedeDatos;
}

me deberia de imprimir los datos de la tabla como si lo hace cuando lo escirbo de esta manera, la verdad no se porq:


function capturaData()
{
var total=document.getElementById("tbl").rows.length;
basedeDatos=new Array();

for (var i=1; i<=total; i++) {
basedeDatos[i]=new Array();
for (var k=0; k<=4; k++){
basedeDatos[i][k]=document.getElementById("tbl").rows[i].cells[k].innerHTML;
alert(basedeDatos[i][k]);
}
}
// return basedeDatos;
}


en el segundo obviamente imprimo todos los tr, en el primero solo imprimo esa celda, pero ni eso lo imprime.

osea cuando ejecuto el evento no realiza nada, deberia saltar el alert, pero no lo hace.

relamente me gustaria qme ayudaras ZEROKILLED, te agradeceria muxo
  #8 (permalink)  
Antiguo 19/02/2011, 14:28
 
Fecha de Ingreso: octubre-2009
Mensajes: 21
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: guardar tabla dinamica en array bidimensional

vamos ayudenmeeeeeeeeeee
  #9 (permalink)  
Antiguo 19/02/2011, 14:55
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Respuesta: guardar tabla dinamica en array bidimensional

Yo creo que necesitas tranquilizarte y hacer una prueba de escritorio con ese código. Casi seguro que te pusiste a tirar lineas directamente, si estas empezando, no deberías de saltarte la etapa de arrastrar el lápiz.
  #10 (permalink)  
Antiguo 19/02/2011, 22:20
 
Fecha de Ingreso: octubre-2009
Mensajes: 21
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: guardar tabla dinamica en array bidimensional

antes, de cualquier cosa, gracias a todos por contestar.. después de horas y horas pude encontrar esto código ya esta full, derrepente hay alguna manera de mejorarlo pero ami me funciona perfecto!!, ya saben .. meter una tabla dinamica creada con javacript con n tr, o n td aki esta:

function datosTextos() {
var textos = '';
for (var i=1;i<document.getElementById('tbl').rows.length;i ++){
for (var j=0;j<=4;j++){
if (j==4){
textos = textos + document.getElementById('tbl').rows[i].cells[j].innerHTML;
}else{
textos = textos + document.getElementById('tbl').rows[i].cells[j].innerHTML + '-';
}
}
textos = textos + '/';
}
alert(textos);

return textos;
}

$cadena=textos; // obviamente textos lo envias mediante post o get y lo recogesy lo almacenos en la variable $cadena.

$partes = explode("/",$cadena); // divide una cadena según separador
array_pop($partes); // elimina el ultimo elemento del array

y ahi ya tienen toda la base de datos en arreglos divididos por filas para poderlos meter en la base de datos...

Ahora el código para meterlo en la base de datos: (Ahi viene).


for($i=0;$i<=(count($partes)-1);$i++){
$subpartes = explode("-",($partes[$i]));

if(count($subpartes)==5)
$coma=" , ";

if($subpartes[2]=="Si")
$subpartes[2]="NOT NULL";
else
$subpartes[2]="";

if($subpartes[4]=="Si")
$subpartes[4]="AUTO_INCREMENT";
else
$subpartes[4]="";

$sql="create table ".$_GET['bdd']." ( ";
$var.=$subpartes[0]." ".$subpartes[1]." (".$subpartes[3].") ".$subpartes[2]." ".$subpartes[4].$coma;



if ($i==(count($partes)-1)){ //con esto borras la ultima coma y pones el ultimo parentesis, eso es
$var = substr ($var, 0, -2); // cuando hay muxas filas con registros.
$var.=" )"; //

}

}

$sqlTotal=$sql.$var; //ahi tienen el sql para enviarlo

obviamente lo q yo hago aca creo una tabla nueva con los datos q vienen desde una tabla dinamica de javascrpit para guardarlos .. los grabo en una bdd de mysql utilizando PHP

espero q los ayude muxoo..

si alguien puede mejorar este codigo seria muy interesante.. gracias ojala lo puedan mejorar para asi ir puliendo mas esto.

Última edición por jjhoncv25; 19/02/2011 a las 22:25

Etiquetas: dinamicas, guardar, mysql, php, tablas, bidimensionales
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:43.