Foros del Web » Programando para Internet » Javascript » Frameworks JS »

[SOLUCIONADO] Problema al eliminar un <tr>

Estas en el tema de Problema al eliminar un <tr> en el foro de Frameworks JS en Foros del Web. Hola a todo@s. Tengo un problemilla con unas funciones y ya no se cómo solventarlo. El caso es que utilizo una funcion js para agregar ...
  #1 (permalink)  
Antiguo 29/11/2011, 08:12
 
Fecha de Ingreso: julio-2006
Mensajes: 21
Antigüedad: 17 años, 9 meses
Puntos: 0
Pregunta Problema al eliminar un <tr>

Hola a todo@s.
Tengo un problemilla con unas funciones y ya no se cómo solventarlo.
El caso es que utilizo una funcion js para agregar filas a una tabla, y luego ejecuto una funcion .post para insertarlos en una BBDD. El código es el siguiente:
Código:
$(document).ready(function(){
   fn_eliminar();
  
});

function fn_agregar(){
    cadena = "<tr>";
    cadena = cadena + "<td>" + $("#cod_barras").val() + "</td>";
    cadena = cadena + "<td>" + $("#descripcion").val() + "</td>";
    cadena = cadena + "<td>" + $("#unidades").val() + "</td>";
    cadena = cadena + "<td>" + $("#precio_venta").val() + "</td>";
    cadena = cadena + "<td>" + $("#Marca").val() + "</td>";
    cadena = cadena + "<td id='subtotal'>" + $("#unidades").val() * $('#precio_venta').val() + "</td>";
    cadena = cadena + "<td><a class='elimina'><img src='delete.png' style='cursor:pointer;' /></a></td></tr>";
    document.getElementById('codigo_articulo').focus();
    
        $("#tabla").append(cadena);
            //enviamos los valores para insertarlos en la tabla tmp_art_ventas
            $.post("insertaTMP.php", {
                    id_articulo: $("#cod_articulo").val(),
                    cant_articulos: $("#unidades").val(),
                    descripcion: $("#descripcion").val(),
                    precio: $("#precio_venta").val(),
                    iduser: $("#iduser").val()
                    });
        
};
Esta función, va a la perfección.
Luego tengo declarada otra función para eliminar filas de la tabla, la función sería la siguiente:
Código:
function fn_eliminar(){
    $("a.elimina").click(function(){
        id = $(this).parents("tr").find("td").eq(0).html();
        respuesta = confirm("Desea eliminar el articulo: " + id);
        if (respuesta){
            $(this).parents("tr").fadeOut("normal", function(){
            $(this).remove();
	    //ejecutamos la consulta para que elimine de la BBDD
		$.post("deleteTMP.php",{
		iduser: $("#iduser").val(),
		cod_articulo: $("#cod_articulo").val()
            });
            })
        }
    });
};
Bien, ambas funciones funcionan, pero no como yo quisiera.
El caso es que cada vez que intento eliminar uno de las filas de la tabla me pide la confirmación, tantas veces como filas me queden en la tabla, y además, cuando ejecuta la consulta para eliminarlo de la BBDD, el cod_articulo siempre es el del último artículo que he agregado a la tabla.

Qué estoy haciendo mal?

Desde ya GRACIAS!
  #2 (permalink)  
Antiguo 27/12/2011, 16:34
MCF
 
Fecha de Ingreso: marzo-2008
Mensajes: 126
Antigüedad: 16 años, 1 mes
Puntos: 4
Respuesta: Problema al eliminar un <tr>

mmm no te mandará a eliminar todas porque mandas a llamar la función fn_eliminar cuando carga la pagina?
  #3 (permalink)  
Antiguo 28/12/2011, 03:26
 
Fecha de Ingreso: julio-2006
Mensajes: 21
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: Problema al eliminar un <tr>

Ya lo resolvi, descuida.

Gracias!
  #4 (permalink)  
Antiguo 28/12/2011, 14:04
MCF
 
Fecha de Ingreso: marzo-2008
Mensajes: 126
Antigüedad: 16 años, 1 mes
Puntos: 4
Respuesta: Problema al eliminar un <tr>

bien que bueno! podrías poner la solución por si alguien mas tiene este problema y llega a este tema sepa que ocurrió mal?
  #5 (permalink)  
Antiguo 28/12/2011, 15:36
Avatar de ghidalgoram  
Fecha de Ingreso: marzo-2008
Ubicación: Costa Rica
Mensajes: 446
Antigüedad: 16 años, 1 mes
Puntos: 7
Respuesta: Problema al eliminar un <tr>

Cita:
Iniciado por MCF Ver Mensaje
bien que bueno! podrías poner la solución por si alguien mas tiene este problema y llega a este tema sepa que ocurrió mal?
Es bueno, como dice el colega, poner la solución y asi ayudamos a la comunidad.
Saludos.
__________________
Loading...
  #6 (permalink)  
Antiguo 01/04/2013, 10:58
 
Fecha de Ingreso: abril-2013
Mensajes: 3
Antigüedad: 11 años
Puntos: 0
Respuesta: Problema al eliminar un <tr>

Porfavor necesito la solucion al problema...
Gracias
  #7 (permalink)  
Antiguo 02/04/2013, 02:37
 
Fecha de Ingreso: julio-2006
Mensajes: 21
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: Problema al eliminar un <tr>

Hola!

Ante todo pedir disculpas a la comunidad por no postear la solución, pero se me pasó totalmente en el momento que lo resolví.

Por lo que recuerdo es más sencillo de lo que parece, había que definir una variable al <tr> y luego pasarla a la consulta.

El código completo sería el siguiente:

Código:
function recargar(){	
      /// Variable que voy a enviar a php usando post
	var iduser = document.getElementById("iduser").value;
	var impuesto = document.getElementById("impuesto_aplicado").value;
     /// Envio datos al php y los guardo en mi variable datos
	$.post("TotalAlbaran.php", { iduser: iduser, impuesto : impuesto }, function(data){
     /// Finalmente escribo las respuesta de php en el div recargado
	$("#total_venta").html(data);
	});			
}

function limpia(){
	document.getElementById("codigo").value="";
	document.getElementById('codigo').focus();
	document.getElementById("descripcion").value="";
	document.getElementById("unidades").value="";
	document.getElementById("precioCompra").value="";
	document.getElementById("precioVenta").value="";
	// document.getElementById("familia").value ="";
	
}


/*************************  PARA LOS ARTICULOS  **********************/

var cont = 0;
           
function fn_agregar(){
    cont++;
    cadena = "<tr id='articulo_"+ cont +"'>";
    cadena = cadena + "<td>" + $("#codigo").val() + "<input type='hidden' id='cod_articulo"+cont+"' value='"+ $("#codigo").val() +"'</td>";
    cadena = cadena + "<td>" + $("#descripcion").val() + "</td>";
    cadena = cadena + "<td>" + $("#familia").val() + "</td>";
    cadena = cadena + "<td>" + $("#unidades").val() + "</td>";
    cadena = cadena + "<td>" + $("#precioCompra").val() + "</td>";
    cadena = cadena + "<td>" + $("#unidades").val() * $('#precioCompra').val() + "</td>";
    cadena = cadena + "<td>" + $("#precioVenta").val() + "</td>";
    
    //cadena = cadena + "<td><a class='eliminar' onclick='fn_eliminar("+ cont + ");'><img src='delete.png' style='cursor:pointer;' /></a></td></tr>";
    cadena = cadena + "<td><img src='delete.png' style='cursor:pointer;' onclick='eliminarFila(" + cont + ");' /></td></tr>";

    document.getElementById('codigo').focus();
    
        $("#tabla").append(cadena);
            //enviamos los valores para insertarlos en la tabla tmp_art_ventas
           
	    $.post("insertaTMP.php", {
                    cod_articulo: $("#codigo").val(),
		    		descripcion: $("#descripcion").val(),
                    unidades: $("#unidades").val(),                    
                    idalbaran: $("#idalbaran").val(),
		    		precioCompra: $("#precioCompra").val(),
		    		precioVenta: $("#precioVenta").val(),
                    iduser: $("#iduser").val()
                    });
	   
    //actualizamos el precio
    recargar();
    //limpiamos
    limpia();
};

function eliminarFila(cont){
    respuesta = confirm("Desea eliminar el articulo: "+cont);
    if (respuesta){
	    //$("#articulo_" + cont).remove();
	    var cod_articulo = $("#codigo"+ cont ).val();
		
	    $("#articulo_"+cont).fadeOut("normal",function(){
		$.post("deleteTMP.php",{
		    iduser: $("#iduser").val(),
		    codigo: $("#cod_articulo"+ cont ).val()
		    });
		});
	    //actualizamos el precio de nuevo
	    recargar();
	    }
    
}
Espero que os sea de utilidad.

Saludos!!!

Última edición por jdangosto; 02/04/2013 a las 03:03 Razón: Solución

Etiquetas: funciones, javascript, javascript+php, javascript-funciones, jquery, tablas
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 01:56.