Foros del Web » Programando para Internet » Jquery »

PROBLEMA Suma de select

Estas en el tema de PROBLEMA Suma de select en el foro de Jquery en Foros del Web. Que tal amigos soy nuevo en esto y quisiera que me ayuden, estoy haciendo una cotización a través de una pagina PHP, y a al ...
  #1 (permalink)  
Antiguo 28/10/2013, 15:44
 
Fecha de Ingreso: octubre-2013
Mensajes: 8
Antigüedad: 10 años, 6 meses
Puntos: 0
Pregunta PROBLEMA Suma de select

Que tal amigos soy nuevo en esto y quisiera que me ayuden, estoy haciendo una cotización a través de una pagina PHP, y a al sumar mis select cada vez que hago click se sigue incrementando y no toma solo un valor del seletc. tengo este código y quisiera solo tomar un valor y no cada vez que hago click en los valores del select.

$("#miSelect").select(function(){
$("#miSelect option:selected").each(function () {
calculo=$(this).val();
inc=$("#calculo").val();
$("#calculo").val(parseFloat(calculo)+parseFloat(i nc));
})
}

)

#calculo es una caja de texto donde se va sumando los artículos seleccionados.
Muchas gracias ante todo
  #2 (permalink)  
Antiguo 28/10/2013, 19:33
Avatar de torturo  
Fecha de Ingreso: octubre-2003
Ubicación: Cozumel y Cancun
Mensajes: 61
Antigüedad: 20 años, 6 meses
Puntos: 1
Respuesta: PROBLEMA Suma de select

has intentado hacer una operación lógia, algo como esto:
var log=false;

if(log === false)
{
$("#miSelect").select(function(){
$("#miSelect option:selected").each(function () {

calculo=$(this).val();
inc=$("#calculo").val();
$("#calculo").val(parseFloat(calculo)+parseFloat (i nc));
})
}
)
log=true;
}


esa es una idea, pero imagino que hay más...
de igual manera menciono que no funcionará de nuevo HASTA que se recargue la página...
  #3 (permalink)  
Antiguo 29/10/2013, 08:41
Avatar de Maganius  
Fecha de Ingreso: septiembre-2010
Mensajes: 310
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: PROBLEMA Suma de select

Porque estas usando each?

Código Javascript:
Ver original
  1. $("#miSelect").select(function(){
  2.  
  3. alert(parseFloat($("#miSelect option:selected").val())+parseFloat($("#calculo").val()));
  4.  
  5. )
  #4 (permalink)  
Antiguo 29/10/2013, 10:41
 
Fecha de Ingreso: octubre-2013
Mensajes: 8
Antigüedad: 10 años, 6 meses
Puntos: 0
Información Respuesta: PROBLEMA Suma de select

He probado con las dos maneras y no me muestra el resultado en el cuadro de texto, each lo ponia para q almacene o sume cada select en el textbox.
La imagen es la referencia:

https://drive.google.com/file/d/0B78mdbyRhFR0SnhQZW51TTN1eGM/edit?usp=sharing
  #5 (permalink)  
Antiguo 29/10/2013, 13:57
Avatar de Maganius  
Fecha de Ingreso: septiembre-2010
Mensajes: 310
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: PROBLEMA Suma de select

Pone el html y el javascript de nuevo y usa los highlight que son utiles
  #6 (permalink)  
Antiguo 29/10/2013, 14:47
 
Fecha de Ingreso: octubre-2013
Mensajes: 8
Antigüedad: 10 años, 6 meses
Puntos: 0
Información Respuesta: PROBLEMA Suma de select

Haber:
Código Javascript:
Ver original
  1. <?php
  2. $conexion = (mysql_connect("localhost","root","")) or die(mysql_error());
  3. mysql_select_db("dbprice",$conexion) or die(mysql_error());
  4. ?>
  5. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  6. <html xmlns="http://www.w3.org/1999/xhtml">
  7. <head>
  8. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  9. <title>Documento sin título</title>
  10. <script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
  11. <script>
  12. $(document).ready(function(){
  13. // Creamos el evento change para detectar el elemento elegido
  14. $("#combo1").change(function () {
  15.     $("#combo1 option:selected").each(function () {
  16.                         // capturamos el valor elegido
  17.             elegido=$(this).val();
  18.                         // Llamamos al archivo combo1.php
  19.             $.post("combo1.php", { elegido: elegido }, function(data){
  20.                         // Asignamos las nuevas opciones para el combo2
  21.             $("#combo2").html(data);
  22.                         // reseteamos el combo3
  23.             $("#combo3").html("");
  24.             $("#combo4").html("");
  25.         });        
  26.         });
  27.    
  28.  
  29.     });
  30.    // Parametros para el combo2
  31.     $("#combo2").change(function () {
  32.         $("#combo2 option:selected").each(function () {
  33.             //alert($(this).val());
  34.                 elegido=$(this).val();
  35.                 $.post("combo2.php", { elegido: elegido }, function(data){
  36.                 $("#combo3").html(data);               
  37.                 $("#combo4").html("");
  38.             });        
  39.            
  40.            
  41.         $("#combo3").change(function () {
  42.         $("#combo2 option:selected").each(function () {
  43.             //alert($(this).val());
  44.                 elegido=$(this).val();
  45.                 $.post("combo3.php", { elegido: elegido }, function(data){
  46.                 $("#combo4").html(data);               
  47.             });        
  48.         });
  49.    })
  50.            
  51.         })  
  52.  
  53.    })
  54.    $("#combo4").click(function(){
  55.        $("#combo4 option:selected").each(function () {
  56.            calculo=$(this).val();
  57.            $("#calculo").val(calculo);
  58.            })      
  59.        }
  60.    )
  61.   $("#CboHDD2").click(function(){
  62.        $("#CboHDD2 option:selected").each(function () {
  63.            calculo=$(this).val();
  64.            inc=$("#calculo").val();
  65.            
  66.            $("#calculo").val(parseFloat(calculo)+parseFloat(inc));
  67.            })      
  68.        }
  69.    )
  70.    
  71.     $("#CboRam").click(function(){
  72.        $("#CboRam option:selected").each(function () {
  73.            calculo=$(this).val();
  74.            inc=$("#calculo").val();        
  75.            $("#calculo").val(parseFloat(calculo)+parseFloat(inc));
  76.            })      
  77.        }
  78.    )
  79.    <!------------------------>
  80.      $("#CboHDD4").click(function(){
  81.        $("#CboHDD4 option:selected").each(function () {
  82.            calculo=$(this).val();
  83.            inc=$("#calculo").val();        
  84.           $("#calculo").val(parseFloat(calculo)+parseFloat(inc));
  85.            })      
  86.        }
  87.    )
  88.    
  89.    $("#CboGpu").click(function(){
  90.        $("#CboGpu option:selected").each(function () {
  91.            calculo=$(this).val();
  92.            inc=$("#calculo").val();        
  93.            $("#calculo").val(parseFloat(calculo)+parseFloat(inc));
  94.            })      
  95.        }
  96.    )
  97.    
  98.     $("#CboCase").click(function(){
  99.        $("#CboCase option:selected").each(function () {
  100.            calculo=$(this).val();
  101.            inc=$("#calculo").val();        
  102.            $("#calculo").val(parseFloat(calculo)+parseFloat(inc));
  103.            })      
  104.        }
  105.    )
  106.    
  107.     $("#CboHDD5").click(function(){
  108.        $("#CboHDD5 option:selected").each(function () {
  109.            calculo=$(this).val();
  110.            inc=$("#calculo").val();        
  111.            $("#calculo").val(parseFloat(calculo)+parseFloat(inc));
  112.            })      
  113.        }
  114.    )
  115.    
  116.        $("#CboTM").click(function(){
  117.        $("#CboTM option:selected").each(function () {
  118.            calculo=$(this).val();
  119.            inc=$("#calculo").val();        
  120.            $("#calculo").val(parseFloat(calculo)+parseFloat(inc));
  121.            })      
  122.        }
  123.    )
  124. });
  125. </script>
  126. <style>
  127. h1,h2,h3{
  128.     margin:0px;
  129.     padding:5px;
  130.     border-bottom:#066 dashed 1px;
  131.  
  132. }
  133. #pagina{
  134.     width:900px;
  135.     margin:0 auto;
  136.     background:#F3F3F3;
  137.     border:1px solid #CCC;
  138.     padding:10px;
  139.     }
  140. </style>
  141. </head>
  142. <body>
  143. <div id="pagina">
  144. <?php
  145. $plataforma="SELECT * FROM tbl_compatible";
  146. $s=mysql_query($plataforma) or die (mysql_error());
  147. if (isset($_REQUEST['envia'])):
  148.     $idp=$_REQUEST['combo4'];
  149.     $precio=$_REQUEST['calculo'];
  150.     $c0=mysql_query("select * from tbl_price_detalle") or die(mysql_error());  
  151.     if (mysql_insert_id()==0):
  152.         $id=1;
  153.     else:
  154.         $id=mysql_insert_id()+1;
  155.     endif;
  156.  
  157.     $c="SELECT * from tbl_producto WHERE precio_pro=".$idp." limit 1";
  158.     $s=mysql_query($c) or die (mysql_error());
  159.    
  160.     while ($r = mysql_fetch_array($s)):
  161.         $c1="insert into tbl_price_detalle values($id,$idp,$precio)";
  162.         $s1=mysql_query($c1) or die (mysql_error());
  163.         echo "transacción salvada....";
  164.         echo "<a href='index.php' > CONTINUAR </a>";
  165.     endwhile;
  166. else:
  167. ?>
  168. <form id="form1">
  169. <H1>ARMA TU PC SISAQP</H1>
  170. --------------------------------------------------------S/.<input name="calculo" type="text" id="calculo" value="0" /><BR />
  171.  
  172. <H3>Plataforma</H3>
  173. <select name="combo1" id="combo1">  
  174.     <?php while ($r = mysql_fetch_array($s)):   ?>
  175.     <option value="<?php echo $r['id_compatible'] ?>"><?php echo $r['tipo_compatible'] ?></option>
  176.     <?php endwhile; ?>
  177. </select> <BR />
  178. <H3>Socket</H3>
  179. <select name="combo2" id="combo2">  
  180. </select><BR />
  181. <H3>Procesador</H3>
  182. <select name="combo3" id="combo3">  
  183. </select><BR />
  184. <H3>Placa Madre</H3>
  185. <select name="combo4" id="combo4">  
  186. </select><BR />
  187.  
  188. <H3>Disco Duro</H3>
  189. <?php
  190. $tabla = mysql_query("select * from tbl_producto where id_sector=19");
  191. ?>
  192.    <select name="CboHDD2" id="CboHDD2">
  193.      <option value="0">Selecciona Uno...</option>
  194.      <?php  while ($registro = mysql_fetch_array($tabla)): ?>
  195.      <option value="<?php echo $registro['precio_pro'];?>"><?php echo $registro['descr_pro'];?> Precio : <?php echo $registro['precio_pro'];?></option>
  196.      <?php endwhile; ?>
  197.    </select>
  198.  
  199. <input name="envia" type="submit" value="guardar" id="envia" />
  200.  
  201.  
  202. </form>
  203. <?php endif; ?>
  204.  
  205. </div>
  206. </body>
  207. </html>

Última edición por stevencone; 29/10/2013 a las 14:53
  #7 (permalink)  
Antiguo 29/10/2013, 16:29
Avatar de Maganius  
Fecha de Ingreso: septiembre-2010
Mensajes: 310
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: PROBLEMA Suma de select

Código Javascript:
Ver original
  1. $("#CboHDD2").click(function(){
  2.        var calculo = $("#CboHDD2").val();
  3.            inc=$("#calculo").val();
  4.            
  5.            $("#calculo").val(parseFloat(calculo)+parseFloat(inc));
  6.            })      
  7.        }
  8.    )
  #8 (permalink)  
Antiguo 29/10/2013, 17:24
 
Fecha de Ingreso: octubre-2013
Mensajes: 8
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: PROBLEMA Suma de select

Cita:
Iniciado por Maganius Ver Mensaje
Código Javascript:
Ver original
  1. $("#CboHDD2").click(function(){
  2.        var calculo = $("#CboHDD2").val();
  3.            inc=$("#calculo").val();
  4.            
  5.            $("#calculo").val(parseFloat(calculo)+parseFloat(inc));
  6.            })      
  7.        }
  8.    )
Nada hermano sigue sumando al cambiar el prodcuto, tu crees q tenga q ver algo el método click??
  #9 (permalink)  
Antiguo 30/10/2013, 05:24
Avatar de Maganius  
Fecha de Ingreso: septiembre-2010
Mensajes: 310
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: PROBLEMA Suma de select

Pero suma? al principio sumaba?

Si suma después de cambiar el producto es por el evento change.

Cuando queres que sume? al apretar un botón?

el evento click es correcto en ese caso.

Tal vez estés usando los eventos en mal orden?
  #10 (permalink)  
Antiguo 30/10/2013, 10:00
 
Fecha de Ingreso: octubre-2013
Mensajes: 8
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: PROBLEMA Suma de select

Que tal gracias por la atención, ssi suma pero el problema es cuando por ejemplo: quiero cambiar de selección de disco duro, debería cambiar el monto seleccionado por el actual sin embargo lo añade, te doy el link de lo que se requiere.

http://pcel.com/index.php?route=pcel/armapc&plataforma=67

Última edición por stevencone; 30/10/2013 a las 10:16
  #11 (permalink)  
Antiguo 30/10/2013, 11:22
Avatar de Maganius  
Fecha de Ingreso: septiembre-2010
Mensajes: 310
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: PROBLEMA Suma de select

Ese es el ejemplo que estas trabajando o es algo similar a lo que queres hacer?

Lo que te hace es esto?

Total: 2.000

Agregas disco duro

Total: 2.000100?

Si hace eso es porque no estas sumando como numero y lo esta tomando como string.

proba poniendole parseFloat a


$("#calculo").val()

Supongo que ahi guardas el total para luego ir sumándolo, lo estas trayendo como string y no como Int
  #12 (permalink)  
Antiguo 30/10/2013, 14:31
 
Fecha de Ingreso: octubre-2013
Mensajes: 8
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: PROBLEMA Suma de select

Es lo que se desea hacer, realiza la suma pero cuando selecciono otro producto ya seleccionado no cambia el precio sino lo sigue sumando.

Etiquetas: php, select, suma
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 03:33.