Foros del Web » Programando para Internet » Javascript »

Problema al multiplicar valor de checkbox con valor de un select

Estas en el tema de Problema al multiplicar valor de checkbox con valor de un select en el foro de Javascript en Foros del Web. Saludos a todos, tengo un problema con un codigo para multiplicar unos valores, la cuestion es que traigo un listado de productos desde una bd, ...
  #1 (permalink)  
Antiguo 26/04/2010, 09:11
 
Fecha de Ingreso: agosto-2009
Mensajes: 59
Antigüedad: 15 años, 3 meses
Puntos: 0
Problema al multiplicar valor de checkbox con valor de un select

Saludos a todos, tengo un problema con un codigo para multiplicar unos valores, la cuestion es que traigo un listado de productos desde una bd, con un while genero la lista, al clickear un checkbox suma o resta el precio de cada producto, hasta ahi todo bien, el problema surge cuando creo la funcion para multiplcar ya que apenas me estoy introduciendo en el javascript, cuando cliqueo el checkbox y selecciono del combobox la cantidad de productos, en vez de multiplicar precio x cantidad multiplica precio x precio tantas veces como se haya seleccionado en el combobox, es decir lo eleva a la potencia.

Necesito que si selecciono 4 multiplique por 4 y si selecciono 2 solo multiplique por 2.

aca les dejo el codigo


Código Javascript:
Ver original
  1. <script>
  2. var total=0;
  3. function sumar(valor) {
  4. total += valor;
  5. document.f1.total.value=Math.round(total * 100) / 100;
  6. }
  7.  
  8. function restar(valor) {
  9. total-=valor;
  10. document.f1.total.value=Math.round(total * 100) / 100;
  11. }
  12.  
  13. function multiplica(valor) {
  14. total*= valor;
  15. document.f1.total.value=Math.round(total * 100) / 100;
  16. }
  17.  
  18. function dividir(valor) {
  19. total/=valor;
  20. document.f1.total.value=Math.round(total * 100) / 100;
  21. }
  22.  
  23. function comparar(){
  24.    var a = parseInt(<?php echo $gastar; ?>);
  25.    var b = parseInt(document.f1.total.value);
  26.    if (a<=b) {
  27.       alert('Haz alcanzado el monto máximo para tu pedido, por favor elimina algunos productos de tu selección');return false;
  28.    }
  29. }
  30. </script>

y aqui el codigo del listado

Código HTML:
Ver original
  1. <form action="procesar_pedido1.php" method="post" name="f1" id="f1"><p>

Código PHP:
Ver original
  1. <?php
  2.                    
  3. require('conexion.php');
  4. $csql = "SELECT * FROM productos where existencia='SI' order by codigo ASC";
  5. $ress = mysql_query($csql,$conn);                  
  6. if (mysql_num_rows($ress)!=0){
  7.  
  8. while($row = mysql_fetch_array($ress)) {   
  9. $codigo = $row["codigo"];
  10. $producto = $row["producto"];
  11. $precio = $row["precio"];
  12. $cantidad = $row["cantidad"];
  13.  
  14.  
  15. ?>

Código Javascript:
Ver original
  1. <script language="javascript">
  2. function deshabilita(codigo)
  3.  
  4.       {
  5.  
  6.           if (document.getElementById("pedido" + codigo).checked) {
  7.  
  8.               document.getElementById("cantidad" +codigo).disabled = false;
  9.  
  10.           } else {
  11.  
  12.               document.getElementById("cantidad" +codigo).disabled = true;
  13.  
  14.           }
  15.  
  16.       }
  17.      
  18. </script>

Código PHP:
Ver original
  1. <?php
  2.  
  3. $c=$c+1;
  4. if($c%2==0) //si el residuo es 0 la pintamos de un color
  5. $bgc='#DFDFDF';
  6. else //sino la pintamos de otro
  7. $bgc='#EEEEEE';
  8.  
  9. echo"<tr bgcolor=$bgc height=20 class=Estilo5><td><center>$codigo</td><td><center>$producto</td><td><center><input type='checkbox' name='pedido".$codigo."' id='pedido".$codigo."' value='".$precio."' onClick='if (this.checked) sumar(".$precio."); else restar(".$precio.");comparar();deshabilita(\"$codigo\");'></td><td><center><select id='cantidad".$codigo."' name='cantidad".$codigo."' onchange='if (this.change) dividir(".$precio."); else multiplica(".$precio.");'disabled><option selected='selected'>1</option><option value='2'>2</option><option value='3'>3</option><option value='4'>4</option><option value='5'>5</option></select></td><td><center>$precio</td></tr>";
  10.  
  11. echo"<input type='hidden' name='codigo".$codigo."' value='".$codigo."'>";
  12. echo"<input type='hidden' name='producto".$codigo."' value='".$producto."'>";
  13. echo"<input type='hidden' name='precio".$codigo."' value='".$precio."'>";
  14.  
  15.  
  16.  
  17.  
  18.  } }
  19.  ?>

Código HTML:
Ver original
  1. </p>
  2.              
  3.                  
  4.               </table>
  5.               <p align="right">Total: <input type=text name=total value=0 id="total" class="user">
  6.               <input type="hidden" name="cantidad" value="<?php echo $cantidad; ?>" />
  7.               <input type="hidden" name="codigo" value="<?php echo $codigo; ?>" />
  8.               <input type="hidden" name="cesta" value="<?php echo $cesta; ?>">
  9.               <input type="hidden" name="gastar1" value="<?php echo $gastar; ?>" />
  10.           <div align="left"><input type="image" name="pedido3" width="125" height="105" src="imagenes/caja-registradora.png" align="middle" /></div></p>
  11.               </div>
  12.               </form>

eso es todo el codigo del listado, agradezco toda la ayuda que me puedan prestar
  #2 (permalink)  
Antiguo 26/04/2010, 09:52
Avatar de sweetlydark  
Fecha de Ingreso: septiembre-2008
Mensajes: 391
Antigüedad: 16 años, 1 mes
Puntos: 10
Respuesta: Problema al multiplicar valor de checkbox con valor de un select

De lo visto no muestras el código javascript donde surge el problema. No veo por ningún parte de ese código donde intentas multiplicar precio por cantidad. Solo tienes esta función de multiplicación:

Código:
function multiplica(valor) {
  total*= valor; 
  document.f1.total.value=Math.round(total * 100) / 100;
}
El cual multiplica el valor dado por la llamada con el variable total y luego lo asigna a un elemento luego de redondearla. Que no es lo que quieres hacer a menos que total siempre es alterado a la cantidad y valor es el precio pero lo veo sujeto a muchos errores ya que no se ve por donde total recoge su valor entre otras cosas.
__________________
Por fin vuelvo a tener internet!
http://www.anidandoetiquetas.com/
  #3 (permalink)  
Antiguo 26/04/2010, 10:04
 
Fecha de Ingreso: agosto-2009
Mensajes: 59
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Problema al multiplicar valor de checkbox con valor de un select

precisamente no se nada de javascript, estaba intentando hacer la multiplicacion, si pudieras darme una funcion que sirva te lo agradeceria enormemente
  #4 (permalink)  
Antiguo 26/04/2010, 10:14
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Problema al multiplicar valor de checkbox con valor de un select

En ese caso te recomiendo que leas algún manual para que puedas lograrlo, aquí hay uno para que puedas empezar http://w3schools.com/js/default.asp y como dice caricatos El abc de los formularios.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 26/04/2010, 10:23
Avatar de sweetlydark  
Fecha de Ingreso: septiembre-2008
Mensajes: 391
Antigüedad: 16 años, 1 mes
Puntos: 10
Respuesta: Problema al multiplicar valor de checkbox con valor de un select

Muy buenos recursos con eso deberias poder hacer el funcion que necesitas especialmente si escribistes lo que ya tienes.

Lo unico que necesitas para hacer lo que quieres es un funcion que recoge el cantidad de articulos (lo cual no veo en el tuyo) y el precio luego que multiplique ambos. Para darte un idea.
__________________
Por fin vuelvo a tener internet!
http://www.anidandoetiquetas.com/
  #6 (permalink)  
Antiguo 26/04/2010, 15:25
 
Fecha de Ingreso: agosto-2009
Mensajes: 59
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Problema al multiplicar valor de checkbox con valor de un select

muchas gracias he hecho esto, sin embargo aún no funciona correctamente

no importa cual seleccione todos valen 27, que es el valor del ultimo producto en la lista, ese lo multiplica perfecto pero cuando trato de agregarle otro producto dandole al checkbox se pierde la multiplicacion y solo cuenta el valor unitario.

aqui les dejo el codigo a ver si me pueden ayudar, que tengo que entregar esto el miercoles


Código HTML:
Ver original
  1. <form action="procesar_pedido1.php" method="post" name="f1" id="f1"  onsubmit="return validar()">
  2.             <div align="center">
  3.             <p align="left" class="user"></p>
  4.             <table width="680" border="1" align="center" cellpadding="1" cellspacing="1">
  5.                   <tr>
  6.                     <td height="29"><center class="Estilo4">
  7.                       <b class="Estilo5">C&oacute;digo</b></center>                  </td>
  8.                     <td height="29"><center class="Estilo4">
  9.                       <b class="Estilo5">Producto</b></center>                  </td>
  10.                     <td><center class="Estilo4">
  11.                       <b class="Estilo5">Pedido</b>
  12.                     </center>                  </td>
  13.                     <td><center class="Estilo4">
  14.                       <b class="Estilo5">Cantidad</b>
  15.                     </center></td>
  16.                      <td><center class="Estilo4">
  17.                       <b class="Estilo5">Precio Unitario</b>
  18.                     </center></td>
  19.                 </tr>
  20.  
  21.                   <p>

Código PHP:
Ver original
  1. <?php
  2.                    
  3. require('conexion.php');
  4. $csql = "SELECT * FROM productos where existencia='SI' order by codigo ASC";
  5. $ress = mysql_query($csql,$conn);                  
  6. if (mysql_num_rows($ress)!=0){
  7.  
  8. while($row = mysql_fetch_array($ress)) {   
  9. $codigo = $row["codigo"];
  10. $producto = $row["producto"];
  11. $precio = $row["precio"];
  12. $cantidad = $row["cantidad"];
  13. $caracter = $row["caracter"];
  14. ?>

Código Javascript:
Ver original
  1. <script language="javascript">
  2. function deshabilita(codigo)
  3.  
  4.       {
  5.  
  6.           if (document.getElementById("pedido" + codigo).checked) {
  7.  
  8.               document.getElementById("cantidad" +codigo).disabled = false;
  9.  
  10.           } else {
  11.  
  12.               document.getElementById("cantidad" +codigo).disabled = true;
  13.  
  14.           }
  15.  
  16.       }
  17.      
  18.       function validar() {
  19.         var f = document.f1
  20.         var sw = false;
  21.        
  22.         for (i=0; i < f.pedido<?php echo $codigo; ?>.length; i++) {
  23.             if (f.pedido<?php echo $codigo; ?>[i].checked == true) {
  24.                 sw = true;
  25.             }
  26.         }
  27.        
  28.         if (sw == false) {
  29.             alert("No puedes enviar el pedido en blanco")
  30.             return false
  31.         }
  32.        
  33.         return true
  34.     }
  35.    
  36. function multiplica(){
  37.     var precio = document.getElementById("pedido<?php echo $codigo; ?>");
  38.     var multiplicador = parseInt(document.getElementById("cantidad<?php echo $codigo; ?>").value, 10);
  39.     document.f1.total.value = multiplicador*parseInt(precio.value, 10);
  40. }  
  41. </script>

Código PHP:
Ver original
  1. <?php
  2.  
  3. $c=$c+1;
  4. if($c&#37;2==0) //si el residuo es 0 la pintamos de un color
  5. $bgc='#DFDFDF';
  6. else //sino la pintamos de otro
  7. $bgc='#EEEEEE';
  8.  
  9. echo"<tr bgcolor=$bgc height=20 class=Estilo5><td><center>$codigo</td><td><center>$producto</td><td><center><input type='checkbox' name='pedido".$codigo."' id='pedido".$codigo."' value='".$precio."' onClick='if (this.checked) sumar(".$precio."); else restar(".$precio.");comparar();deshabilita(\"$codigo\");'></td><td><center><select id='cantidad".$codigo."' name='cantidad".$codigo."' onChange='multiplica(this);' disabled><option selected='selected'>1</option><option value='2'>2</option><option value='3'>3</option><option value='4'>4</option><option value='5'>5</option></select></td><td><center>$precio</td></tr>";
  10.  
  11. echo"<input type='hidden' name='codigo".$codigo."' value='".$codigo."'>";
  12. echo"<input type='hidden' name='producto".$codigo."' value='".$producto."'>";
  13. echo"<input type='hidden' name='precio".$codigo."' value='".$precio."'>";
  14.  
  15.  
  16.  
  17.  
  18.  } }
  19.  ?>
  #7 (permalink)  
Antiguo 26/04/2010, 17:18
 
Fecha de Ingreso: agosto-2009
Mensajes: 59
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Problema al multiplicar valor de checkbox con valor de un select

se que molesto pero es que me urge esta funcion, si alguien sabe por favor que me diga.
  #8 (permalink)  
Antiguo 29/04/2010, 16:44
Avatar de sweetlydark  
Fecha de Ingreso: septiembre-2008
Mensajes: 391
Antigüedad: 16 años, 1 mes
Puntos: 10
Respuesta: Problema al multiplicar valor de checkbox con valor de un select

Seria mucho mas fácil si el código que facilite, pudiera producir el error.

Pero, no nos proporciona ni los checkbox, ni el combo donde esta surgiendo el error.

Solo nos muestra código php que no sirve de nada (el error nos esta allí -sino esto estuviese en ese foro- y no tenemos como probarlo sin tu banco de datos y un poco mas de código), html que solo nos da unos input escondidos o la parte superior de una tabla. Por ultimo código js que funciona tal y como esta escrita.

Perdón pero el código js que colocaste funciona de lo mas bien. Claro eso es si el formulario que no has colocado esta bien y que el código php este bien.
__________________
Por fin vuelvo a tener internet!
http://www.anidandoetiquetas.com/
  #9 (permalink)  
Antiguo 06/05/2010, 22:22
 
Fecha de Ingreso: agosto-2009
Mensajes: 59
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Problema al multiplicar valor de checkbox con valor de un select

Muchas gracias por tu respuesta, no habia respondido antes ya que estaba de viaje.

aca pongo el codigo HTML para que veas que no me funciona como lo espero.


Código HTML:
Ver original
  1. <form action="procesar_pedido1.php" method="post" name="f1" id="f1"  onsubmit="return validar()">
  2.             <div align="center">
  3.             <p align="left" class="user"></p>
  4.             <table width="680" border="1" align="center" cellpadding="1" cellspacing="1">
  5.                   <tr>
  6.                     <td height="29"><center class="Estilo4">
  7.                       <b class="Estilo5">C&oacute;digo</b></center>                  </td>
  8.  
  9.                     <td height="29"><center class="Estilo4">
  10.                       <b class="Estilo5">Producto</b></center>                  </td>
  11.                     <td><center class="Estilo4">
  12.                       <b class="Estilo5">Pedido</b>
  13.                     </center>                  </td>
  14.                     <td><center class="Estilo4">
  15.                       <b class="Estilo5">Cantidad</b>
  16.  
  17.                     </center></td>
  18.                      <td><center class="Estilo4">
  19.                       <b class="Estilo5">Precio</b>
  20.                     </center></td>
  21.                 </tr>
  22.  
  23.                   <p>
  24.                     <script language="javascript">
  25. function deshabilita(codigo)
  26.  
  27.       {
  28.  
  29.           if (document.getElementById("pedido" + codigo).checked) {
  30.  
  31.               document.getElementById("cantidad" +codigo).disabled = false;
  32.  
  33.           } else {
  34.  
  35.               document.getElementById("cantidad" +codigo).disabled = true;
  36.  
  37.           }
  38.  
  39.       }
  40.      
  41.  
  42. function multiplica(){
  43.  
  44.     var precio = document.getElementById("pedido5");
  45.  
  46.     var multiplicador = parseInt(document.getElementById("cantidad5").value, 10);
  47.  
  48.     document.f1.total.value = multiplicador*parseInt(precio.value, 10);
  49.  
  50. }      
  51.  
  52. <tr bgcolor=#EEEEEE height=20 class=Estilo5><td><center>5</td><td><center>solomo</td><td><center><input type='checkbox' name='pedido5' id='pedido5' value='27' onClick='if (this.checked) sumar(27); else restar(27);comparar();deshabilita("5");'></td><td><center><select name='cantidad5' id='cantidad5' onchange='multiplica()' disabled><option selected>1</option><option value='2'>2</option><option value='3'>3</option><option value='4'>4</option><option value='5'>5</option></select></td><td><center>27</td></tr><input type='hidden' name='codigo5' value='5'><input type='hidden' name='producto5' value='solomo'><input type='hidden' name='precio5' value='27'><input type='hidden' name='gastar' value=''><script language="javascript">
  53. function deshabilita(codigo)
  54.  
  55.       {
  56.  
  57.           if (document.getElementById("pedido" + codigo).checked) {
  58.  
  59.               document.getElementById("cantidad" +codigo).disabled = false;
  60.  
  61.           } else {
  62.  
  63.               document.getElementById("cantidad" +codigo).disabled = true;
  64.  
  65.           }
  66.  
  67.       }
  68.      
  69.  
  70. function multiplica(){
  71.  
  72.     var precio = document.getElementById("pedido2");
  73.  
  74.     var multiplicador = parseInt(document.getElementById("cantidad2").value, 10);
  75.  
  76.     document.f1.total.value = multiplicador*parseInt(precio.value, 10);
  77.  
  78. }      
  79.  
  80. <tr bgcolor=#DFDFDF height=20 class=Estilo5><td><center>2</td><td><center>tomates</td><td><center><input type='checkbox' name='pedido2' id='pedido2' value='28.00' onClick='if (this.checked) sumar(28.00); else restar(28.00);comparar();deshabilita("2");'></td><td><center><select name='cantidad2' id='cantidad2' onchange='multiplica()' disabled><option selected>1</option><option value='2'>2</option><option value='3'>3</option><option value='4'>4</option><option value='5'>5</option></select></td><td><center>28.00</td></tr><input type='hidden' name='codigo2' value='2'><input type='hidden' name='producto2' value='tomates'><input type='hidden' name='precio2' value='28.00'><input type='hidden' name='gastar' value=''><script language="javascript">
  81. function deshabilita(codigo)
  82.  
  83.       {
  84.  
  85.           if (document.getElementById("pedido" + codigo).checked) {
  86.  
  87.               document.getElementById("cantidad" +codigo).disabled = false;
  88.  
  89.           } else {
  90.  
  91.               document.getElementById("cantidad" +codigo).disabled = true;
  92.  
  93.           }
  94.  
  95.       }
  96.      
  97.  
  98. function multiplica(){
  99.  
  100.     var precio = document.getElementById("pedido1");
  101.  
  102.     var multiplicador = parseInt(document.getElementById("cantidad1").value, 10);
  103.  
  104.     document.f1.total.value = multiplicador*parseInt(precio.value, 10);
  105.  
  106. }      
  107.  
  108.  
  109. <tr bgcolor=#EEEEEE height=20 class=Estilo5><td><center>1</td><td><center>galletas</td><td><center><input type='checkbox' name='pedido1' id='pedido1' value='8.00' onClick='if (this.checked) sumar(8.00); else restar(8.00);comparar();deshabilita("1");'></td><td><center><select name='cantidad1' id='cantidad1' onchange='multiplica()' disabled><option selected>1</option><option value='2'>2</option><option value='3'>3</option><option value='4'>4</option><option value='5'>5</option></select></td><td><center>8.00</td></tr><input type='hidden' name='codigo1' value='1'><input type='hidden' name='producto1' value='galletas'><input type='hidden' name='precio1' value='8.00'><input type='hidden' name='gastar' value=''><script language="javascript">
  110. function deshabilita(codigo)
  111.  
  112.       {
  113.  
  114.           if (document.getElementById("pedido" + codigo).checked) {
  115.  
  116.               document.getElementById("cantidad" +codigo).disabled = false;
  117.  
  118.           } else {
  119.  
  120.               document.getElementById("cantidad" +codigo).disabled = true;
  121.  
  122.           }
  123.  
  124.       }
  125.      
  126.  
  127. function multiplica(){
  128.  
  129.     var precio = document.getElementById("pedido3");
  130.  
  131.     var multiplicador = parseInt(document.getElementById("cantidad3").value, 10);
  132.  
  133.     document.f1.total.value = multiplicador*parseInt(precio.value, 10);
  134.  
  135. }      
  136.  
  137. <tr bgcolor=#DFDFDF height=20 class=Estilo5><td><center>3</td><td><center>harina pan</td><td><center><input type='checkbox' name='pedido3' id='pedido3' value='2.70' onClick='if (this.checked) sumar(2.70); else restar(2.70);comparar();deshabilita("3");'></td><td><center><select name='cantidad3' id='cantidad3' onchange='multiplica()' disabled><option selected>1</option><option value='2'>2</option><option value='3'>3</option><option value='4'>4</option><option value='5'>5</option></select></td><td><center>2.70</td></tr><input type='hidden' name='codigo3' value='3'><input type='hidden' name='producto3' value='harina pan'><input type='hidden' name='precio3' value='2.70'><input type='hidden' name='gastar' value=''><script language="javascript">
  138. function deshabilita(codigo)
  139.  
  140.       {
  141.  
  142.           if (document.getElementById("pedido" + codigo).checked) {
  143.  
  144.               document.getElementById("cantidad" +codigo).disabled = false;
  145.  
  146.           } else {
  147.  
  148.               document.getElementById("cantidad" +codigo).disabled = true;
  149.  
  150.           }
  151.  
  152.       }
  153.      
  154.  
  155. function multiplica(){
  156.  
  157.     var precio = document.getElementById("pedido4");
  158.  
  159.     var multiplicador = parseInt(document.getElementById("cantidad4").value, 10);
  160.  
  161.     document.f1.total.value = multiplicador*parseInt(precio.value, 10);
  162.  
  163. }      
  164.  
  165.  
  166. <tr bgcolor=#EEEEEE height=20 class=Estilo5><td><center>4</td><td><center>leche en polvo</td><td><center><input type='checkbox' name='pedido4' id='pedido4' value='15.78' onClick='if (this.checked) sumar(15.78); else restar(15.78);comparar();deshabilita("4");'></td><td><center><select name='cantidad4' id='cantidad4' onchange='multiplica()' disabled><option selected>1</option><option value='2'>2</option><option value='3'>3</option><option value='4'>4</option><option value='5'>5</option></select></td><td><center>15.78</td></tr><input type='hidden' name='codigo4' value='4'><input type='hidden' name='producto4' value='leche en polvo'><input type='hidden' name='precio4' value='15.78'><input type='hidden' name='gastar' value=''>
  167.                   </p>
  168.              
  169.                  
  170.               </table>
  171.               <p align="right">Total: <input type=text name=total value=0 id="total" class="user">
  172.  
  173.               <input type="hidden" name="cantidad" value="" />
  174.               <input type="hidden" name="codigo" value="4" />
  175.               <input type="hidden" name="cesta" value="">
  176.               <input type="hidden" name="gastar1" value="" />
  177.           <div align="left"><input type="submit" name="pedido3" value="Enviar pedido" align="middle"></div></p>
  178.               </div>
  179.               </form>

El codigo no me funciona como yo quiero, cuando selecciono cualquiera habilita el select pero no multiplica, solo multiplica el ultimo de los select, y en cuanto habilito otro check entonces no me suma ese valor a la multiplicacion sino que la reemplaza y coloca el precio original. Si me pudieras ayudar te lo agradeceria enormemente, entregue el sistema sin eso y me lo estan pidiendo pero por mas que lo intento no me sale. Muchas gracias desde ya
  #10 (permalink)  
Antiguo 07/05/2010, 09:12
Avatar de sweetlydark  
Fecha de Ingreso: septiembre-2008
Mensajes: 391
Antigüedad: 16 años, 1 mes
Puntos: 10
Respuesta: Problema al multiplicar valor de checkbox con valor de un select

Lo primer que observo es que tiene 5 funciones de multiplicar (y deshabilitar) y todos llamados iguales. ¿Como sabe tu codigo cual llamar? Veo que lo colocaste cada uno debajo de uno de lo seleciones pero esto no haces nada para tu codigo.

El no va a ejecutar el que quede mas cerca, los funciones no trabajan asi. Puedes colocarlo donde sea en tu codigo y por lo general llamarlo de donde quiera. Lo que esta pasando es que el navegador esta leyendo todo los funciones de multiplicar pero el que se queda en memoria es el ultimo que leyo con el mismo nombre.

El de desabilitar funciona porque le pasas el valor del select que hay que desabilitar pero el de multiplicar no es asi y esta escrita para trabajar con uno de los opciones (el ultimo en este caso).

Los funciones estan hechos para eliminar codigo redundante osea si tienes varios lugares donde tienes que multiplicar algo en vez de escribir el codigo de multiplicacion 20 veces. Escribes un funcion que puedes llamar las veces necesarias.

Sugiero que colocas solo un funcion de deshabilitar y solo uno de multiplicar. Al de multiplicacion le pasas lo valores pertinentes (en este caso puedes pasar los id).

Código:
function multiplica(id,id2){
 
    var precio = document.getElementById(id);

    var multiplicador = parseInt(document.getElementById(id2).value, 10);

    document.f1.total.value = multiplicador*parseInt(precio.value, 10);
 
}
__________________
Por fin vuelvo a tener internet!
http://www.anidandoetiquetas.com/
  #11 (permalink)  
Antiguo 07/05/2010, 10:16
 
Fecha de Ingreso: agosto-2009
Mensajes: 59
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Problema al multiplicar valor de checkbox con valor de un select

gracias por responder tan pronto, lo que pasa es que estoy muy crudo en javascript, hice lo que me sugeriste pero no me funciona, podrias ayudarme? y disculpa el abuso de verdad.
  #12 (permalink)  
Antiguo 08/05/2010, 09:07
Avatar de sweetlydark  
Fecha de Ingreso: septiembre-2008
Mensajes: 391
Antigüedad: 16 años, 1 mes
Puntos: 10
Respuesta: Problema al multiplicar valor de checkbox con valor de un select

Cambiastes las llamadas a la funcion para incluir los ids? Te sale un error en tu navegador?

http://www.ulpgc.es/otros/tutoriales...cript/cap5.htm
__________________
Por fin vuelvo a tener internet!
http://www.anidandoetiquetas.com/
  #13 (permalink)  
Antiguo 08/05/2010, 11:23
 
Fecha de Ingreso: agosto-2009
Mensajes: 59
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Problema al multiplicar valor de checkbox con valor de un select

Muchas gracias ahora me funciona a la perfección, el unico detalle es que si el precio es de 2.70 entonces al multiplicar no toma el .70 y me dice que es 4 en ves de decir que es 5.4. que será? intente cambiando el 10 que esta despues de value en la funcion pero hace lo mismo.

Muchas gracias de verdad por el apoyo

Edito: cuando selecciono varios no suma correctamente. ni resta tampoco.

Última edición por douglasroos; 08/05/2010 a las 11:37
  #14 (permalink)  
Antiguo 08/05/2010, 16:02
Avatar de sweetlydark  
Fecha de Ingreso: septiembre-2008
Mensajes: 391
Antigüedad: 16 años, 1 mes
Puntos: 10
Respuesta: Problema al multiplicar valor de checkbox con valor de un select

En el enlace q te di Lea sobre el funcion parseint que estas usando y parsefloat.
__________________
Por fin vuelvo a tener internet!
http://www.anidandoetiquetas.com/
  #15 (permalink)  
Antiguo 08/05/2010, 16:17
 
Fecha de Ingreso: agosto-2009
Mensajes: 59
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Problema al multiplicar valor de checkbox con valor de un select

jeje se que molesto, ya me multiplica a la perfección, ahora el detalle es sumar ese resultado a los demas precios. tendre que decirle a la funcion suma y resta que en vez de sumarle el value del checkbox sumen el total? o algo asi? esta funcion me tiene patas arriba.

gracias de antemano
  #16 (permalink)  
Antiguo 08/05/2010, 22:23
 
Fecha de Ingreso: agosto-2009
Mensajes: 59
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Problema al multiplicar valor de checkbox con valor de un select

asi lo tengo ahora

Código Javascript:
Ver original
  1. function multiplica(pedido<?php echo $codigo;?>,cantidad<?php echo $codigo;?>){
  2.  
  3.     var precio = document.getElementById(pedido<?php echo $codigo;?>);
  4.  
  5.     var multiplicador = parseFloat(document.getElementById(cantidad<?php echo $codigo;?>).value, 10);
  6.  
  7.     document.f1.total.value = multiplicador*Math.round(precio.value * 100) / 100;
  8.  
  9. }

Código HTML:
Ver original
  1. <select name='cantidad".$codigo."' id='cantidad".$codigo."' onchange='multiplica(\"pedido$codigo\",\"cantidad$codigo\")' disabled><option selected>1</option><option value='2'>2</option><option value='3'>3</option><option value='4'>4</option><option value='5'>5</option></select>
  #17 (permalink)  
Antiguo 10/05/2010, 09:54
Avatar de sweetlydark  
Fecha de Ingreso: septiembre-2008
Mensajes: 391
Antigüedad: 16 años, 1 mes
Puntos: 10
Respuesta: Problema al multiplicar valor de checkbox con valor de un select

Cita:
Iniciado por douglasroos Ver Mensaje
ahora el detalle es sumar ese resultado a los demas precios. tendre que decirle a la funcion suma y resta que en vez de sumarle el value del checkbox sumen el total?
gracias de antemano
Estas correcto.
__________________
Por fin vuelvo a tener internet!
http://www.anidandoetiquetas.com/

Etiquetas: checkbox, multiplicar, select
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 10:40.