Foros del Web » Programando para Internet » Jquery »

error al sumar autosuma

Estas en el tema de error al sumar autosuma en el foro de Jquery en Foros del Web. muy buenas tengo este codigo: <!DOCTYPE html> <html><head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <meta name="robots" content="noindex, nofollow"> <meta name="googlebot" content="noindex, nofollow"> <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.2.0/jquery.js"></script> <script type="text/javascript" ...
  #1 (permalink)  
Antiguo 31/03/2016, 15:06
Avatar de j-diego  
Fecha de Ingreso: diciembre-2002
Ubicación: Cochabamba
Mensajes: 63
Antigüedad: 21 años, 4 meses
Puntos: 0
error al sumar autosuma

muy buenas tengo este codigo:


<!DOCTYPE html>
<html><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta name="robots" content="noindex, nofollow">
<meta name="googlebot" content="noindex, nofollow">

<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.2.0/jquery.js"></script>
<script type="text/javascript" src="//code.jquery.com/jquery-1.9.1.js"></script>
<script type="text/javascript" src="//code.jquery.com/ui/1.9.2/jquery-ui.js"></script>

<title> </title>

<script type='text/javascript'>
window.onload=function(){

$(document).ready(function(){
$('[id^=total]').on('change',function() {
var total = 0;

$('[id^=total]').each(function(index){

total += parseFloat($(this).val()?$(this).val():0);
});

var totalAll = $('#amt_due').val(total.toFixed(2));

});
});
$(document).ready(function() {
var max_fields = Infinity; //maximum input boxes allowed
var wrapper1 = $(".input_fields_wrap1");
var add_button1 = $(".add_field_button1"); //Add button

var x = 0; //initlal text box count
$(add_button1).click(function(e){ //on add input button click
e.preventDefault();
if(x < max_fields){ //max input box allowed
x++; //text box increment
$(wrapper1).append('<div id="contenedor"><input type="text" value="'+x+'" size="5">&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="prod['+x+'][detalle]" size="60"/> N/S: <input type="text" name="prod['+x+'][serie]" size="40"/> P.Unit: <input type="text" name="prod['+x+'][cantidad]" id="total" size="10"/><input class="remove_field" type="button" value="- Eliminar" /></div>'); //add input box
}
});

$(wrapper1).on("click",".remove_field", function(e){ //user click on remove text
e.preventDefault(); $(this).parent('div').remove(); x--;
})



});

}//]]>

</script>


</head>

<body>
<form name="myForm" action="guardar3.php" method="POST">
<table width="1000" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="65" align="center">ITEM</td><td width="400" align="center">DETALLE</td>
<TD width="241" align="center">NUMERO DE SERIES</TD><TD width="194" align="center">PRECIO</TD><td width="100">CANCElAR</td>
</tr>
<TR>
<td colspan="5">

<div class="input_fields_wrap1">
<input class="add_field_button1" type="button" value="+ Agregar" /> <input type="submit" value="Enviar">
</div>




</td>
</TR>
<tr>
<td colspan="3">total</td><td> <input type="text" class="k-textbox" value="0.00" style="color: red; text-align: right; font-family: courier" name="total_amt_due" id="amt_due" readonly /></td>
</tr>

</table>
</form>

</body>

</html>


.... name="prod['+x+'][cantidad]" esto es para la bs de datos php bueno no esta completo solo es para ver si llegan los datos

<?php

foreach($_POST['prod'] as $key => $val){
echo "detalle: ".$val['detalle'];
echo "<br>";
echo "serie: ".$val['serie'];
echo "<br>";
echo "total: ".$val['total'];
echo "<br>";
echo "---------------------------";
echo "<br>";
}
?>


el problema es q no me genera la auto suma como en este:


<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta name="robots" content="noindex, nofollow">
<meta name="googlebot" content="noindex, nofollow">










<script type="text/javascript" src="//code.jquery.com/jquery-1.9.1.js"></script>







<script type="text/javascript" src="//code.jquery.com/ui/1.9.2/jquery-ui.js"></script>


<link rel="stylesheet" type="text/css" href="//code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">




<link rel="stylesheet" type="text/css" href="/css/result-light.css">




<style type="text/css">

</style>

<title> by rochellecanale</title>







<script type='text/javascript'>//<![CDATA[
$(window).load(function(){
$('[id^=total]').on('change',function() {

var index = this.id.match(/\d+/)[0];
var total_input = parseInt($('#total'+index).val());

var total = 0;

$('[id^=total]').each(function(index){
total += parseFloat($(this).val()?$(this).val():0);
});

var totalAll = $('#total_amt_due').val(total.toFixed(2));

});

});//]]>

</script>


</head>

<body>
<table border="1">
<tr>
<td>
<input type='text' id='total' value='' />
</td>
</tr>

<tr>
<td>
<input type='text'' id='total' value='' />
</td>
</tr>


<tr>
<td>
<input type='text' id='total' value='' />
</td>
</tr>


<tr>
<td>
<input type='text' id='total' value='' />
</td>
</tr>


<tr>
<td>
<input type='text' id='total' value='' />
</td>
</tr>

<tr>
<td>
<input type="text" class="k-textbox" value="0.00" style="color: red; text-align: right; font-family: courier" name="total_amt_due" id="total_amt_due" readonly="readonly" />
</td>
</tr>
</table>

</body>

</html>

la diferencia es q uno se genera automáticamente no soy muy bueno con jquery, o como se debería aplicar!!!
__________________
Gracias.
  #2 (permalink)  
Antiguo 01/04/2016, 09:15
 
Fecha de Ingreso: diciembre-2015
Ubicación: rosario
Mensajes: 69
Antigüedad: 8 años, 5 meses
Puntos: 5
Respuesta: error al sumar autosuma

La verdad tenes un lio importante y es muy complicado explicarlo asi q te pego el codigo derecho, de lo que creo querias hacer, si necesitas saber mas avisa
Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.     function sumarImportes(){
  3.         var total = 0;
  4.  
  5.         $('input.importe').each(function(index){
  6.             total += parseFloat($(this).val()?$(this).val():0);
  7.         });    
  8.         $('#amt_due').val(total.toFixed(2));
  9.     }
  10.    
  11.    
  12.     var max_fields = Infinity; //maximum input boxes allowed
  13.     var wrapper1 = $(".input_fields_wrap1");
  14.     var add_button1 = $(".add_field_button1"); //Add button
  15.  
  16.     var x = 0; //initlal text box count
  17.     $(add_button1).click(function(e){ //on add input button click
  18.         e.preventDefault();
  19.         if(x < max_fields){ //max input box allowed
  20.             x++; //text box increment
  21.             $(wrapper1).append('<div id="contenedor"><input type="text" value="'+x+'" size="5">&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="prod['+x+'][detalle]" size="60"/> N/S: <input type="text" name="prod['+x+'][serie]" size="40"/> P.Unit: <input type="text" name="prod['+x+'][cantidad]" class="importe" size="10"/><input class="remove_field" type="button" value="- Eliminar" /></div>'); //add input box
  22.         }
  23.        
  24.     });
  25.  
  26.     $(wrapper1).on("click",".remove_field", function(e){ //user click on remove text
  27.         e.preventDefault();
  28.         $(this).parent('div').remove();
  29.         sumarImportes();
  30.         x--;
  31.     });
  32.  
  33.     $(wrapper1).on("blur","input.importe", function(e){
  34.         sumarImportes();
  35.     });
  36. });
  #3 (permalink)  
Antiguo 01/04/2016, 09:55
Avatar de j-diego  
Fecha de Ingreso: diciembre-2002
Ubicación: Cochabamba
Mensajes: 63
Antigüedad: 21 años, 4 meses
Puntos: 0
Respuesta: error al sumar autosuma

Muchas gracias fue muy útil.......... no quiero ser molesto la verdad no se mucho de jquery, si quisiera agregar un auto completar en el campo detalle y devolver a la linea como se podría aplicar o alguna pista de como seria.

si busco (auto-completar)en este input(detalle) tendría q llenar los datos de la bd a los demás campos de su linea:

<input type="text" name="prod['+x+'][detalle]" size="60"/>

como puede ver este input tiene un name algo inusual para q se carguen los datos en un array (esto es para la lectura de los datos no para la busqueda(autocompletar))
espero q me comprendas ....

<?php

foreach($_POST['prod'] as $key => $val){
echo "detalle: ".$val['detalle'];
echo "<br>";
echo "serie: ".$val['serie'];
echo "<br>";
echo "cantidad: ".$val['cantidad'];
echo "<br>";
echo "---------------------------";
echo "<br>";
}
?>
__________________
Gracias.
  #4 (permalink)  
Antiguo 04/04/2016, 07:29
 
Fecha de Ingreso: diciembre-2015
Ubicación: rosario
Mensajes: 69
Antigüedad: 8 años, 5 meses
Puntos: 5
Respuesta: error al sumar autosuma

ponele una clase al input de detalle class="detalle" y luego trabajalo con esto
https://jqueryui.com/autocomplete/#multiple-remote
  #5 (permalink)  
Antiguo 04/04/2016, 09:47
Avatar de j-diego  
Fecha de Ingreso: diciembre-2002
Ubicación: Cochabamba
Mensajes: 63
Antigüedad: 21 años, 4 meses
Puntos: 0
Respuesta: error al sumar autosuma

gracias no lo comprendo bien pero lo revisare
__________________
Gracias.

Etiquetas: Ninguno
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 11:50.