Foros del Web » Programando para Internet » Javascript »

Recorrer tabla

Estas en el tema de Recorrer tabla en el foro de Javascript en Foros del Web. Buenos dias... intento en mi pagina web recorrer las columnass de una tabla html para verificar en la celda4 si existen o no datos con ...

  #1 (permalink)  
Antiguo 23/08/2008, 08:24
 
Fecha de Ingreso: abril-2008
Mensajes: 151
Antigüedad: 16 años, 1 mes
Puntos: 0
Recorrer tabla

Buenos dias... intento en mi pagina web recorrer las columnass de una tabla html para verificar en la celda4 si existen o no datos con javascript????'

Alguna sugerencia por favor...
  #2 (permalink)  
Antiguo 23/08/2008, 13:41
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: Recorrer tabla

usa un loop, un for te sirve bien. La idea es primero hacer una referncia a la tabla, puede ser con un getElmentById, luego obtienes todo los tr de esa tabla, luego creas un loop interno que recorre todos los tr de cada td y vas checando si tiene algun valor o no. Sencillo...
__________________
twitter: @imbuzu
  #3 (permalink)  
Antiguo 25/08/2008, 08:39
 
Fecha de Ingreso: abril-2008
Mensajes: 151
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Recorrer tabla

Si algo asi tengo pero como soy novata en js me confundo.
Ya tengo la tabla con var el = document.getElementById("tabla"), tambien tengo la columna que quiero verificar si existen espacios en blanco var tds = el.getElementsByTagName("input") ya que los campos son inputs.... de ahi ya no se que mas hacer :(

Alguna idea o ejemplo que me pueda ayudar?
  #4 (permalink)  
Antiguo 25/08/2008, 08:48
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Pregunta Respuesta: Recorrer tabla

¿Puedes poner el código HTML que estás usando?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 25/08/2008, 08:52
Avatar de foreverOdd  
Fecha de Ingreso: noviembre-2007
Ubicación: Caracas
Mensajes: 489
Antigüedad: 16 años, 5 meses
Puntos: 14
Respuesta: Recorrer tabla

Hola

Para hacer esto debes tener en cuenta que dentro de una tabla las filas se "guardan" como un array(array rows) y las celdas se "guardan" como un array dentro de cada fila(array cells), es decir, si quieres ir a la cuarta celda de la primera fila debes hacer algo asi

laTabla.rows[0].cells[3]

ahora si lo que quieres es saber el contenido de un text dentro de esa celda, debes tener en cuenta que lo quese encuantra dentro de la celda es un array de nodos.
ahora supongamos que dentro de la celda solo tienes un input text, haces:

text = laTabla.rows[0].cells[3].childNodes[0];

Suerte
__________________
My path is lit by my own fire, I only go where I desire
  #6 (permalink)  
Antiguo 25/08/2008, 08:59
 
Fecha de Ingreso: abril-2008
Mensajes: 151
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Recorrer tabla

y me imagino que para ver si es una celda en blanco text == "" ?.... LO que pasa es que mi pagina web es un modulo de pedidos donde despliego todos mis materiales y el usuario solo rellenara el input text de los materiales que quiera para luego enviar el pedido y filtrar los que estan llenos y meterlos a una tabla sql.....
  #7 (permalink)  
Antiguo 25/08/2008, 09:01
Avatar de foreverOdd  
Fecha de Ingreso: noviembre-2007
Ubicación: Caracas
Mensajes: 489
Antigüedad: 16 años, 5 meses
Puntos: 14
Respuesta: Recorrer tabla

text.value == ""

pero corrigeme si me equivoco, tienes dentro de la celda un input text, ¿cierto?
eso fue lo que entendi en un principio
__________________
My path is lit by my own fire, I only go where I desire
  #8 (permalink)  
Antiguo 25/08/2008, 09:07
 
Fecha de Ingreso: abril-2008
Mensajes: 151
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Recorrer tabla

Si....
echo "<TABLE BORDER = 10 id = tabla>";
echo "<TR><TH bgcolor=#C0D9D9>Fecha</th><TH bgcolor=#C0D9D9>Categoria</th><TH bgcolor=#C0D9D9>Cod</th><TH bgcolor=#C0D9D9>Descripcion</th><TH bgcolor=#C0D9D9>Unidad</th><TH bgcolor=#C0D9D9>Cantidad</th>";
while($sql = mysql_fetch_array($consulta))
{
echo "<tr>";
echo "<form name = formulario action = adicionapedido.php method = get>";
echo "<td>".$fecha_."</td>";
echo "<td>".$sql['subcategoria']."</td>";
echo "<td>".$sql['codigo']."</td>";
echo "<td>".$sql['descrip']."</td>";
?><td id="unidad"><input type="text" name="und"></td>
<td><input type="text" name="cant"></td> <?

echo "</form>";
echo "</tr>";
}
echo "</table>";
Solamente quiero evaluar si el cliente rellena el input und y cant... los demas por default vienen rellenos porq vienen de una consulta...
  #9 (permalink)  
Antiguo 25/08/2008, 09:15
Avatar de foreverOdd  
Fecha de Ingreso: noviembre-2007
Ubicación: Caracas
Mensajes: 489
Antigüedad: 16 años, 5 meses
Puntos: 14
Respuesta: Recorrer tabla

Dioooossssssss

No es necesario recorrer la tabla solo colocale un ID a tu text y recoge el valor con:

und = document.getElementById("und").value;
cant = document.getElementById("cant").value;

despues:

cant ==""

und ==""


tambien mueve la apertura de tu formulario, colocalo antes de la tabla.

el formulario es un control de bloque, no lo puedes abrir en una celda y cerrarlo en otra, en realidad no puedes hacer eso con ningun control.
__________________
My path is lit by my own fire, I only go where I desire
  #10 (permalink)  
Antiguo 25/08/2008, 09:24
 
Fecha de Ingreso: abril-2008
Mensajes: 151
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Recorrer tabla

?><td id="unidad"><input type="text" name="und"></td>
<td id="cantidad"><input type="text" name="cant"></td> <?

Ya lo cambie.... trato de imprimir el valor del und con alert(und) y me manda "UNDEFINED"....
  #11 (permalink)  
Antiguo 25/08/2008, 09:27
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: Recorrer tabla

Como está dentro del formulario debe ser:
Código PHP:
alert(formulario.und.value); 
O directamente usando el id .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #12 (permalink)  
Antiguo 25/08/2008, 09:29
Avatar de foreverOdd  
Fecha de Ingreso: noviembre-2007
Ubicación: Caracas
Mensajes: 489
Antigüedad: 16 años, 5 meses
Puntos: 14
Respuesta: Recorrer tabla

pero no le has puesto el id a tus text

<td id="unidad"><input type="text" name="und" id="und"></td>
<td id="cantidad"><input type="text" name="cant" id="cant">
__________________
My path is lit by my own fire, I only go where I desire
  #13 (permalink)  
Antiguo 25/08/2008, 09:30
 
Fecha de Ingreso: abril-2008
Mensajes: 151
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Recorrer tabla

<script>
function datosTextos()
{
und = document.getElementById("unidad").value;
cant = document.getElementById("cantidad").value;
alert(formulario.und.value);
alert(formulario.unidad.value);
}
</script>

Trate de las dos formas.... y en la primera. "UNDEFINED" y la segunda no imprime nada :(....
  #14 (permalink)  
Antiguo 25/08/2008, 09:35
 
Fecha de Ingreso: abril-2008
Mensajes: 151
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Recorrer tabla

Aqui estan los id
?><td id="unidad"><input type="text" name="und" id="und"></td>
<td id="cantidad"><input type="text" name="cant" id="cant"></td> <?

<script>
function datosTextos()
{
und = document.getElementById("und").value;
cant = document.getElementById("cant").value;
alert(formulario.und.value);
}
</script>
  #15 (permalink)  
Antiguo 25/08/2008, 09:36
Avatar de foreverOdd  
Fecha de Ingreso: noviembre-2007
Ubicación: Caracas
Mensajes: 489
Antigüedad: 16 años, 5 meses
Puntos: 14
Respuesta: Recorrer tabla

<script>
function datosTextos()
{
und = document.getElementById("und").value;
cant = document.getElementById("cant").value;
alert(und);
}
__________________
My path is lit by my own fire, I only go where I desire
  #16 (permalink)  
Antiguo 25/08/2008, 09:40
 
Fecha de Ingreso: abril-2008
Mensajes: 151
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Recorrer tabla

Cita:
Iniciado por foreverOdd Ver Mensaje
<script>
function datosTextos()
{
und = document.getElementById("und").value;
cant = document.getElementById("cant").value;
alert(und);
}
Lo hize asi y no imprime nada.... no se que estare haciendo mal :(
  #17 (permalink)  
Antiguo 25/08/2008, 09:45
 
Fecha de Ingreso: abril-2008
Mensajes: 151
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Recorrer tabla

Excelente.... me falta el cierre el </script> ahora solo me falta recorrer toda la columna Unidad..... para ir evaluando los llenos y los vacios.....
  #18 (permalink)  
Antiguo 25/08/2008, 09:45
Avatar de foreverOdd  
Fecha de Ingreso: noviembre-2007
Ubicación: Caracas
Mensajes: 489
Antigüedad: 16 años, 5 meses
Puntos: 14
Respuesta: Recorrer tabla

asegurate de que ningun otro control tenga el mismo ID, el ID deber ser unico en todo el documento
te recomiendo que uses Firefox y le instales el Firebug para que te sea mas facil depurar tus scripts
__________________
My path is lit by my own fire, I only go where I desire
  #19 (permalink)  
Antiguo 25/08/2008, 09:58
 
Fecha de Ingreso: abril-2008
Mensajes: 151
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Recorrer tabla

Otra consulta.... como hago para que solo me recorra la columna de UNidades y Cantidad??????
  #20 (permalink)  
Antiguo 25/08/2008, 10:07
Avatar de foreverOdd  
Fecha de Ingreso: noviembre-2007
Ubicación: Caracas
Mensajes: 489
Antigüedad: 16 años, 5 meses
Puntos: 14
Respuesta: Recorrer tabla

para que necesitas recorrer la tabla??? con el id en cada input ya lo tienes solucionado, pero la cosa sera mas o menos asi

cantFilas = tabla.rows.length;

for(i=0;i<cantFilas;++){

und = tabla.rows[i].cells[3].childNodes[0].value;
cant = tabla.rows[i].cells[3].childNodes[1].value;
alert(und+" "+cant);//un alert por cada fila

}
__________________
My path is lit by my own fire, I only go where I desire
  #21 (permalink)  
Antiguo 25/08/2008, 10:10
 
Fecha de Ingreso: abril-2008
Mensajes: 151
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Recorrer tabla

Cita:
Iniciado por foreverOdd Ver Mensaje
para que necesitas recorrer la tabla??? con el id en cada input ya lo tienes solucionado, pero la cosa sera mas o menos asi

cantFilas = tabla.rows.length;

for(i=0;i<cantFilas;++){

und = tabla.rows[i].cells[3].childNodes[0].value;
cant = tabla.rows[i].cells[3].childNodes[1].value;
alert(und+" "+cant);//un alert por cada fila

}
Recuerda que es un formulario de pedido osea que son varios und y cant que el usuario llenara..... osea que tengo q recorrer todas las filas para saber cual esta lleno y cual no ......
  #22 (permalink)  
Antiguo 25/08/2008, 10:22
Avatar de foreverOdd  
Fecha de Ingreso: noviembre-2007
Ubicación: Caracas
Mensajes: 489
Antigüedad: 16 años, 5 meses
Puntos: 14
Respuesta: Recorrer tabla

Bueno, no hay razon para molestarse, solo trato de ayudarte

Veras, cuando le damos el mismo nombre a un conjunto de controles estos son interpretados por javascript como un array, asi que lo del ID no es la solucion en este caso.

para recorrer todas las filas simplemente haces algo parecido a mi post anterior pero sin DOM

seria:

largo = document.NOMBRE_DEL_FORMULARIO.und.length;
und = document.NOMBRE_DEL_FORMULARIO.und;//array con todos los und
cant = document.NOMBRE_DEL_FORMULARIO.cant;//array con todos los cant

for(i=0;i<largo;i++){
alert(und[i]+" "+cant[i]);//un alert por fila....


}
Suerte

te recomiendo leer mas sobre Javascript y html......
__________________
My path is lit by my own fire, I only go where I desire
  #23 (permalink)  
Antiguo 25/08/2008, 10:38
 
Fecha de Ingreso: abril-2008
Mensajes: 151
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Recorrer tabla

Gracias.... y no te preocupes para nada q me moleste... y como dije al principio soy novata en programacion web... estoy produciendo y aprendiendo en el camino....
  #24 (permalink)  
Antiguo 25/08/2008, 10:42
 
Fecha de Ingreso: abril-2008
Mensajes: 151
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Recorrer tabla

Cita:
Iniciado por foreverOdd Ver Mensaje
Bueno, no hay razon para molestarse, solo trato de ayudarte

Veras, cuando le damos el mismo nombre a un conjunto de controles estos son interpretados por javascript como un array, asi que lo del ID no es la solucion en este caso.

para recorrer todas las filas simplemente haces algo parecido a mi post anterior pero sin DOM

seria:

largo = document.NOMBRE_DEL_FORMULARIO.und.length;
und = document.NOMBRE_DEL_FORMULARIO.und;//array con todos los und
cant = document.NOMBRE_DEL_FORMULARIO.cant;//array con todos los cant

for(i=0;i<largo;i++){
alert(und[i]+" "+cant[i]);//un alert por fila....


}
Suerte

te recomiendo leer mas sobre Javascript y html......
No me imprime nada tu codigo :(
  #25 (permalink)  
Antiguo 25/08/2008, 10:47
Avatar de foreverOdd  
Fecha de Ingreso: noviembre-2007
Ubicación: Caracas
Mensajes: 489
Antigüedad: 16 años, 5 meses
Puntos: 14
Respuesta: Recorrer tabla

cambiaste NOMBRE_DEL_FORMULARIO por el verdadero nombre de tu formulario???
cuantos formularios tienes en tu documento???
tu formulario esta bien definido???
recuerda lo que comente antes, NO PUEDES abrir un formulario en una celda y cerrarlo en otra..
__________________
My path is lit by my own fire, I only go where I desire
  #26 (permalink)  
Antiguo 25/08/2008, 10:49
 
Fecha de Ingreso: abril-2008
Mensajes: 151
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Recorrer tabla

echo "<form name = formulario action = adicionapedido.php method = get>";
echo "<TABLE BORDER = 10 id = tabla>";
echo "<TR><TH bgcolor=#C0D9D9>Fecha</th><TH bgcolor=#C0D9D9>Categoria</th><TH bgcolor=#C0D9D9>Cod</th><TH bgcolor=#C0D9D9>Descripcion</th><TH bgcolor=#C0D9D9>Unidad</th><TH bgcolor=#C0D9D9>Cantidad</th>";
while($sql = mysql_fetch_array($consulta))
{
echo "<tr>";
echo "<td>".$fecha_."</td>";
echo "<td>".$sql['subcategoria']."</td>";
echo "<td>".$sql['codigo']."</td>";
echo "<td>".$sql['descrip']."</td>";
?><td id="unidad"><input type="text" name="und" id="und"></td>
<td id="cantidad"><input type="text" name="cant" id="cant"></td> <?
echo "</form>";
echo "</tr>";
}
echo "</table>";
Solamente tengo mi formulario... y a donde pienso enviar los datos una vez filtrado la tabla....
  #27 (permalink)  
Antiguo 25/08/2008, 10:52
 
Fecha de Ingreso: abril-2008
Mensajes: 151
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Recorrer tabla

<script>
function datosTextos()
largo = document.formulario.und.length;
und = document.formulario.und;//array con todos los und
cant = document.formulario.cant;//array con todos los cant

for(i=0;i<largo;i++)
{
alert(und[i]+" "+cant[i]);//un alert por fila....
}
</script>
  #28 (permalink)  
Antiguo 25/08/2008, 10:57
Avatar de foreverOdd  
Fecha de Ingreso: noviembre-2007
Ubicación: Caracas
Mensajes: 489
Antigüedad: 16 años, 5 meses
Puntos: 14
Respuesta: Recorrer tabla

el formulario debe terminar despues de la tabla, lo estas terminando en un sitio donde no va ningin html, entre </td></form></tr>
__________________
My path is lit by my own fire, I only go where I desire
  #29 (permalink)  
Antiguo 25/08/2008, 10:58
Avatar de foreverOdd  
Fecha de Ingreso: noviembre-2007
Ubicación: Caracas
Mensajes: 489
Antigüedad: 16 años, 5 meses
Puntos: 14
Respuesta: Recorrer tabla

tambien acostumbrate a meter los atrubutos entre comillas

echo "<form name = formulario action = adicionapedido.php method = get>";
echo "<form name ='formulario' action ='adicionapedido.php' method ='get'>";
o tambien

echo "<form name =\"formulario\" action = \"adicionapedido.php\" method = \"get\">";
__________________
My path is lit by my own fire, I only go where I desire
  #30 (permalink)  
Antiguo 25/08/2008, 11:00
 
Fecha de Ingreso: abril-2008
Mensajes: 151
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Recorrer tabla

echo "<form name = formulario action = adicionapedido.php method = get>";
echo "<TABLE BORDER = 10 id = tabla>";
echo "<TR><TH bgcolor=#C0D9D9>Fecha</th><TH bgcolor=#C0D9D9>Categoria</th><TH bgcolor=#C0D9D9>Cod</th><TH bgcolor=#C0D9D9>Descripcion</th><TH bgcolor=#C0D9D9>Unidad</th><TH bgcolor=#C0D9D9>Cantidad</th>";
while($sql = mysql_fetch_array($consulta))
{
echo "<tr>";
echo "<td>".$fecha_."</td>";
echo "<td>".$sql['subcategoria']."</td>";
echo "<td>".$sql['codigo']."</td>";
echo "<td>".$sql['descrip']."</td>";
?><td id="unidad"><input type="text" name="und" id="und"></td>
<td id="cantidad"><input type="text" name="cant" id="cant"></td> <?
echo "</tr>";
}
echo "</table>";
echo "</form>";
Ok listo....
Igual no imprime nada todavia :(
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 14:57.