Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: andreslrz en 29 Mayo 2015, 16:15 pm



Título: Sacar valores de tabla con jquery
Publicado por: andreslrz en 29 Mayo 2015, 16:15 pm
Hola.

Tengo una tabla a la cual le agrego las filas al llenar un formulario, despues de esto necesito sacar los valores de la tabla para enviarlos a la aplicacion, pero no me deja sacar los valores.

Este es el codigo:
Código
  1.    $('#agregar-presentacion').click(function() {
  2.    //Aqui saco los valores del formulario y lo agrego a la tabla
  3.        $('#lista-presentaciones').append('<tr><td><input type="checkbox" name="presentacion" value="'+$('#presentacion').val()+'"></td>'+
  4.                                              '<td>'+$('#presentacion').val()+'</td>'+
  5.                                              '<td>'+$('#valor').val()+'</td>'+
  6.                                              '<td>'+$('#peso').val()+'</td>'+
  7.                                              '<td>'+$('#alto').val()+'</td>'+
  8.                                              '<td>'+$('#ancho').val()+'</td>'+
  9.                                              '<td>'+$('#largo').val()+'</td></tr>');
  10.    });
  11.  
  12.  
  13.    $('#gproducto').click(function() {
  14.        var presentaciones;
  15.        var i = 0;
  16.    //Validar Producto es una funcion que retorna true o false, eso funciona bien
  17.    //En validar producto se valida que la tabla tenga filas, el problema comienza en el each.
  18.        if(!validarProducto()) {
  19.            $('#lista-presentaciones tr').each(function() {
  20.                presentaciones[i]=$(this).find('td').eq(1).html();
  21.                alert(presentaciones[i]);
  22.            });
  23.        }
  24.    });
  25.  

tambien cambie el each por un for sacando el numero de filas de la tabla y no me retorna el valor del 'td' que estoy pidiendo. De la siguiente forma:
Código
  1. $('#agregar-presentacion').click(function() {
  2.    $('#lista-presentaciones').append('<tr><td><input type="checkbox" name="presentacion" value="'+$('#presentacion').val()+'"></td>'+
  3.                                          '<td>'+$('#presentacion').val()+'</td>'+
  4.                                          '<td>'+$('#valor').val()+'</td>'+
  5.                                          '<td>'+$('#peso').val()+'</td>'+
  6.                                          '<td>'+$('#alto').val()+'</td>'+
  7.                                          '<td>'+$('#ancho').val()+'</td>'+
  8.                                          '<td>'+$('#largo').val()+'</td></tr>');
  9. });
  10.  
  11.  
  12. $('#gproducto').click(function() {
  13.    var presentaciones;
  14.  
  15.    if(!validarProducto()) {
  16.        for(i = 0; i < $('#lista-presentaciones tr').length; i++); {
  17.            alert($('#lista-presentaciones').find('tr').eq(i).find('td').eq(2).html());
  18.        }
  19.  
  20.    }
  21. });
  22.  

agradezco cualquier ayuda con esto.


Título: Re: Sacar valores de tabla con jquery
Publicado por: #!drvy en 3 Junio 2015, 19:06 pm
Código
  1. $('#gproducto').on('click', function(){
  2.  
  3.    /* Por cada columna */
  4.    $('#lista-presentaciones tr').each(function(){
  5.  
  6.        /* Obtener todas las celdas */
  7.        var celdas = $(this).find('td');
  8.  
  9.        /* Mostrar el valor de cada celda */
  10.        celdas.each(function(){ alert($(this).html()); });
  11.  
  12.        /* Mostrar el valor de la celda 2 */
  13.        alert( $(celdas[1]).html() );
  14.  
  15.    });
  16. });

De todos modos esa forma esa forma de obtener los valores es un poco bruta. Yo te recomendaría almacenar en un array o un objeto y sacarlos de ahí.

Saludos