Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/05/2013, 13:51
hernan2212
 
Fecha de Ingreso: marzo-2012
Ubicación: Rosario
Mensajes: 108
Antigüedad: 14 años, 5 meses
Puntos: 0
Pregunta Resta filas dinamicas

Buenas tardes, hace ya dos dias que me estoy volviendo loco con este asunto, probe de mil maneras y no lo puedo destrabar.
Por favor necesito una mano, o al menos una idea por donde empezar porque no logro encontrar la solucion.
Dentro de la funcion Eliminar quiero agregar la resta del importe de la fila que se elimino a un total.


Código PHP:
function eliminarFila($id_campo, $cant_campos){
 
 
$respuesta = new xajaxResponse();
 
$respuesta->addRemove("rowDetalle_$id_campo"); //borro el detalle que indica el parametro id_campo
 
-- $cant_campos; //Resto uno al numero de campos y si es cero borro todo
 
if($cant_campos == 0){
  
$respuesta->addRemove("rowDetalle_0");
  
$respuesta->addAssign("num_campos", "value", "0"); //dejo en cero la cantidad de campos para seguir agregando si asi lo desea el usuario
  
$respuesta->addAssign("cant_campos", "value", "0");
 }
    
$respuesta->addAssign("cant_campos", "value", $cant_campos);
 return 
$respuesta;
} 
en la funcion agregarFila pude hacer la suma del importe agregado al total de esta manera:

Código PHP:
<?
function agregarFila($formulario){
    
$respuesta = new xajaxResponse();
 
extract($formulario);
 
$id_campos = $cant_campos = $num_campos+1;
    
$str_html_td1 = $cod .'<input type="hidden" id="cod' . $id_campos . '" name="cod' . $id_campos . '" value="' . $cod . '"/>' ;
    
$str_html_td2 = $descripcion.'<input type="hidden" id="descripcion' . $id_campos . '" name="descripcion' . $id_campos . '" value="' . $descripcion . '"/>' ;
    
$str_html_td3 = $cantidad .'<input type="hidden" id="cantidad' . $id_campos . '" name="cantidad' . $id_campos . '" value="' . $cantidad . '"/>' ;
    
$str_html_td4 = $precioconiva .'<input type="hidden" id="precioconiva' . $id_campos . '" name="precioconiva' . $id_campos . '" value="' . $precioconiva . '"/>' ;
    
    
$str_html_td5 = $importe.'<input type="hidden" id="importe' . $id_campos . '" name="importe' . $id_campos . '" value="' . $importe . '"/>' ;
    
$str_html_td6 = '<img src="imagenes/delete.png" width="16" height="16" alt="Eliminar" onclick="if(confirm(\'Realmente desea eliminar este detalle?\')){xajax_eliminarFila('. $id_campos .', proyecto.cant_campos.value);}"/>';
 
 if(
$num_campos == 0){ // creamos un encabezado de lo contrario solo agragamos la fila
  
$respuesta->addCreate("tbDetalle", "tr", "rowDetalle_0");
        
$respuesta->addCreate("rowDetalle_0", "th", "tdDetalle_01");    //creamos los campos
        
$respuesta->addCreate("rowDetalle_0", "th", "tdDetalle_02");
        
$respuesta->addCreate("rowDetalle_0", "th", "tdDetalle_03");
        
$respuesta->addCreate("rowDetalle_0", "th", "tdDetalle_04");
        
$respuesta->addCreate("rowDetalle_0", "th", "tdDetalle_05");
        
$respuesta->addCreate("rowDetalle_0", "th", "tdDetalle_06");
        
        
$respuesta->addAssign("tdDetalle_01", "innerHTML", "Codigo");   //asignamos el contenido
        
$respuesta->addAssign("tdDetalle_02", "innerHTML", "Descripcion");
        
$respuesta->addAssign("tdDetalle_03", "innerHTML", "Cantidad");
        
$respuesta->addAssign("tdDetalle_04", "innerHTML", "P. Unit");
        
$respuesta->addAssign("tdDetalle_05", "innerHTML", "Importe");
        
$respuesta->addAssign("tdDetalle_06", "innerHTML", "Eliminar");
         }
    
$idRow = "rowDetalle_$id_campos";
    
$idTd = "tdDetalle_$id_campos";
 
$respuesta->addCreate("tbDetalle", "tr", $idRow);
    
$respuesta->addCreate($idRow, "td", $idTd."1");     //creamos los campos
    
$respuesta->addCreate($idRow, "td", $idTd."2");
    
$respuesta->addCreate($idRow, "td", $idTd."3");
    
$respuesta->addCreate($idRow, "td", $idTd."4");
    
$respuesta->addCreate($idRow, "td", $idTd."5");
    
$respuesta->addCreate($idRow, "td", $idTd."6");
/*
 *     Esta parte podria estar dentro de algun ciclo iterativo  */
 
    
$respuesta->addAssign($idTd."1", "innerHTML", $str_html_td1);   //asignamos el contenido
    
$respuesta->addAssign($idTd."2", "innerHTML", $str_html_td2);
    
$respuesta->addAssign($idTd."3", "innerHTML", $str_html_td3);
    
$respuesta->addAssign($idTd."4", "innerHTML", $str_html_td4);
    
$respuesta->addAssign($idTd."5", "innerHTML", $str_html_td5);
    
$respuesta->addAssign($idTd."6", "innerHTML", $str_html_td6);

 
/*  aumentamos el contador de campos  */


 
$respuesta->addAssign("num_campos","value", $id_campos);
 
$respuesta->addAssign("cant_campos" ,"value", $id_campos);

 
$total += $importe; 

 return 
$respuesta;

}
Pero si a la funcion Eliminar, le agrego: $total -= $importe;
Me descuenta el ultimo importe y no el de la fila eliminada (en el caso que no sea la ultima porsupuesto)

Desde ya gracias por cualquier ayuda
Saludos!