Foros del Web » Programando para Internet » Javascript »

cambiar a multiplicacion

Estas en el tema de cambiar a multiplicacion en el foro de Javascript en Foros del Web. buenos dias espeor y me ayuden este codigo lo encontre en internet el cual lo modifque lo encontre como suma pero lo que si me ...
  #1 (permalink)  
Antiguo 04/09/2014, 08:51
 
Fecha de Ingreso: junio-2013
Mensajes: 8
Antigüedad: 10 años, 10 meses
Puntos: 0
Exclamación cambiar a multiplicacion

buenos dias espeor y me ayuden este codigo lo encontre en internet el cual lo modifque lo encontre como suma pero lo que si me pueden ayudar es como cambiarlo a multiplicacion ya que cambie signos y no puedo me sale error no se como podria cambiarlo muchas gracias..




<body>

<script type="text/javascript">
function presionar(form) {

var form=document[form];

var _check=[], resultado=0;

_check[0]=95000;
_check[1]=85000;
_check[2]=55000;
_check[3]=15000;
_check[4]=22000;
_check[5]=180000;
_check[6]=2000;
_check[7]=45000;
_check[8]=1000;
_check[9]=3500;




for(var i=0; _check[i]; ++i)
{
if(form.check[i].checked) resultado+=_check[i];
}

document.getElementById('seleccion').innerHTML='TO TAL SIN IVA: $ <input type="text" value="'+resultado+'">';
}

</script>

<form name="form1">
<input type="checkbox" name="check"> Caja seca de 7 metros estandard
<br>
<input type="checkbox" name="check"> Refirgerada sin termo
<br>
<input type="checkbox" name="check"> Refirgerada con termo
<br>
<input type="checkbox" name="check"> Mudanzera
<br>
<input type="checkbox" name="check"> Redilas
<br>
<hr>
<DIV ALIGN=left>ACCESORIOS</DIV
<br>
<br>
<input type="checkbox" name="check"> Plafones led
<br>
<input type="checkbox" name="check"> Bordas
<br>
<input type="checkbox" name="check"> Rampa marca maxon oculta de 2500 lbs con instlacion
<br>
<input type="checkbox" name="check"> Rieles logisticos laterales
<br>
<input type="checkbox" name="check"> Piso antiderrapante de acero
<br>
<input type="button" value="aceptar" onClick="presionar('form1')">
</form>
<p id="seleccion">&nbsp;</p>

</body>
  #2 (permalink)  
Antiguo 04/09/2014, 10:04
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 6 meses
Puntos: 977
Respuesta: cambiar a multiplicacion

En esta línea:

Código Javascript:
Ver original
  1. if(form.check[i].checked) resultado+=_check[i];

Se va acumulando el valor asignado previamente a resultado con el de _check[i] y seguirá aumentando conforme se vayan marcando más opciones. Si deseas realizar una multiplicación, cambia el sígno de adición + por el de multiplicación *, aunque como originalmente resultado tiene el cero por valor, todas las multiplicaciones resultarán en cero. Quizá si nos explicaras qué buscas hacer, te podríamos orientar.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 04/09/2014, 10:17
 
Fecha de Ingreso: junio-2013
Mensajes: 8
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: cambiar a multiplicacion

muchas gracias alex mira lo que quiero hacer es lo siguiente

hacer que supongamos tengo 90,500 lo divido entre 7 me da 12.928.57 es seria el resultado despues habria una tabla abajo con diferentes medidas que son por ejemplo 5.50 5.80 6.00 que se multiplicaria ese resultado por ese y el resultado de eso lo sumaria con otras cosas que hbria mas abajo es decir quedaria asi


90.500 / 7 * 5.80 + x cantidad y todo seria por medio de la seleccion de checkbox

muchisimas gracias por ayudarme
  #4 (permalink)  
Antiguo 04/09/2014, 11:06
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 6 meses
Puntos: 977
Respuesta: cambiar a multiplicacion

Tengo algunas preguntas que hacerte:
  • ¿Cómo obtendrás esa cantidad inicial (90500 o la que fuera)?
  • ¿Esa división entre 7 la estableces en código o es una cifra variable?
  • ¿Cuál es la cantidad 'X', de dónde proviene y cómo la añadirías en la operación?
  • ¿Vas a querer acumular los resultados de cada operación o serán independientes?
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 04/09/2014, 11:23
 
Fecha de Ingreso: junio-2013
Mensajes: 8
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: cambiar a multiplicacion

que tal alex mira..

la cantidad de los 90500 es un cantidad fija que medan la cual esa cantidad la teng que dividir entre 7 y ese resultado se multiplica por 5.80 o cualquier otra opcion que pondria yo por medio checkboxs y el resultado me lo da y lo voy asumar conforme otros articulos

la formula seria

precio / 7 * medida + articulos = resultado de todo

90500 / 7 * 5.80 + 2500 + 3500 = 80985.71

todas esas cantidades yo las pongo fijas por medio de opciones por seleccion del checkbox



si no mi alex si se ve muy complicado lo mas sencillo haria es que yo manualmente lo dividiria y la cantidad la colocolo yo en el codigo y sobre este codigo como se haria la multiplicacion mas suma por medio de seleccion asi quedaria para que me entiendas


otra seccion aqui tipo de caja

(checkbox) caja seca ya divdida aqui ya tienen sus cantidades dentro del codigo
(checkbox) refrigerada ya dividida


otra seccion aqui medidas---------

(checkbox) medida 5.80
(checkbox) medida 6.20 aqui se multiplica con el resultado de la seccion de tipo de caja
(checkbox) medida 8.20


otra seccion aqui accesorios______

(checkbox) bordas
(checkbox) luces aqui en esta seccion sumaria con el resultado de la opcion de medidas
(checkbox) piso



resultado final de los 3 acumulado



agradesco bastante tu interes en ayudarme gracias alex

Última edición por red_x_702; 04/09/2014 a las 11:58
  #6 (permalink)  
Antiguo 04/09/2014, 13:18
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 6 meses
Puntos: 977
Respuesta: cambiar a multiplicacion

Analizando al vuelo lo que dices, se me ocurre este ejemplo:



Básicamente hago lo siguiente. Tengo una pequeña lista de productos, los cuales son checkbox con sus respectivos precios, además de una lista de medidas, con radiobuttons y sus respectivas medidas. Más abajo hay un <span> en el cual mostraré el resultado.

En el código JavaScript, tomo a todos los checkbox y a los radiobuttons, además, declaro variables que usaré para realizar el cálculo y una función con la cual obtendré el resultado final. Cuando de un clic a alguno de los checkbox (los productos), verificaré si está marcado, de estarlo, adiciono a una cantidad acumulada el valor del producto marcado, caso contrario, la resto de la misma y, finalmente, ejecuto la función para realizar el cálculo. Con los radiobuttons (las medidas), el proceso es similar, solo que en lugar de afectar a la cantidad acumulada, ejecuto directamente la función del cálculo.

En dicha función verifico si hay productos marcados, de no haberlos, el total será igual a cero, caso contrario, divido el monto fijo entre 7, lo multiplico por el valor de la medida seleccionada y le sumo el acumulado de los productos marcados (que lo realicé al momento de marcar cada producto).

Finalmente, muestro el total en el <span>. Acá puedes ver el código al detalle.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #7 (permalink)  
Antiguo 04/09/2014, 15:06
 
Fecha de Ingreso: junio-2013
Mensajes: 8
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: cambiar a multiplicacion

si e smuy parecido a lo que tenia en menta solamente que quisiera hacerle modificaciones a tu codigo pero no puedo trato de hacerlo pero no puedo disculpa si soy torpe amigo.. gracias
  #8 (permalink)  
Antiguo 04/09/2014, 15:37
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 6 meses
Puntos: 977
Respuesta: cambiar a multiplicacion

¿Y qué tal si empiezas cambiando los valores que puse de ejemplo por los que tienes? Para empezar, ya no necesitarás el array con los precios de los productos, deberás de asignarlos a cada checkbox en el atributo value. Trata de adaptarlo a lo que necesitas, hazlo con calma y si tienes alguna duda, no dudes en preguntarme.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #9 (permalink)  
Antiguo 09/09/2014, 13:53
 
Fecha de Ingreso: junio-2013
Mensajes: 8
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: cambiar a multiplicacion

hermano.. yo de nuevo ya lo hice como me dices y trate de quitar el array pero a la hora del caclulo me sale NAN lo que quiero hacer en base a tu codigo es que yqa no utilize el fijo y calcule los checkbox con las medidad esta bien la formula que pusiste en

else{
radioMarcado = document.querySelectorAll("[type=radio]:checked")[0];
total = ( fijo / 7) * Number(radioMarcado.value) + acumulado;

pero en fijo quisiera poner los checkbox que seleccione uno nada mas mas el calculo que hciiste estaria genial muchas gracias saludos...

te envio el link del codigo

http://jsfiddle.net/redx702/nn42mt75/

Última edición por red_x_702; 09/09/2014 a las 14:07
  #10 (permalink)  
Antiguo 09/09/2014, 16:47
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 6 meses
Puntos: 977
Respuesta: cambiar a multiplicacion

¿Quieres que el monto fijo sea el valor del checkbox seleccionado? Pues, en ese caso, tendrías que pasarle como argumento a la función el valor del checkbox seleccionado y luego solo operas con ella. Como la función también es invocada por los radiobutton y estos no le pasan valor alguno, haré uso del objeto arguments, el cual contiene a los valores pasados a la función como argumentos.

Código Javascript:
Ver original
  1. var productos = document.querySelectorAll("[type=checkbox]"),
  2.     medidas = document.querySelectorAll("[type=radio]"),
  3.     salida = document.querySelector("#resultado"),
  4.     total = 0,
  5.     checkbox =0,
  6.     acumulado = 0,
  7.     radioMarcado = null,
  8.     calcular = function(){
  9.         this.fijo = arguments ? arguments[0] : this.fijo || 0;
  10.        
  11.         if (!document.querySelectorAll("[type=checkbox]:checked").length){
  12.             total = 0; 
  13.         }
  14.         else{
  15.             radioMarcado = document.querySelectorAll("[type=radio]:checked")[0];
  16.             total = ( fijo / 7) * Number(radioMarcado.value) + acumulado;  
  17.         }      
  18.         salida.innerHTML = "Total sin iva: S$" + total.toFixed(2);
  19.     };
  20.  
  21. [].forEach.call(productos, function(producto){
  22.     producto.addEventListener("click", function(){
  23.         if (this.checked) acumulado += Number(this.value);
  24.         else acumulado -= Number(this.value);
  25.         calcular(this.value);
  26.     }, false);
  27. });
  28.  
  29. [].forEach.call(medidas, function(medida){
  30.     medida.addEventListener("click", calcular, false);
  31. });

Ahora fijo se convirtió en this.fijo, es decir, en un atributo del objeto global y ya no en una variable más. Esto lo hago para preservar su valor en futuras llamadas, pues, como verás, antes de asignarle un valor, verifico si se han recibido argumentos a la función; de haberlos, tomo al primero de ellos y lo asigno a this.fijo, caso contrario, le asigno el valor que previamente se le haya asignado en una llamada anterior a la función y si no hubieron llamadas antes de esa (como sería al inicio), le asigno el cero.

Para utilizar dicho valor, ya no es necesario colocar el this adelante, pues se sobreentiende de que se trata de dicho valor. Por otro lado, al darle un clic a alguno de los checkbox, envío el valor del checkbox marcado o desmarcado. Esto último no afectará al resultado pues en la función se valida si hay al menos un checkbox marcado y si no lo hay, el resultado será siempre igual a cero.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #11 (permalink)  
Antiguo 10/09/2014, 08:32
 
Fecha de Ingreso: junio-2013
Mensajes: 8
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: cambiar a multiplicacion

si me sirvio hasta donde me lo has dicho solamente que me da otro resultado por que si le daba el calculo de

selecciono el checbox de caja seca 90500
selecciono el radio de 5.80
resultado me daba otro que no eran los 165485.71

lo cual el resultado deveria de ser 74985.71

lo que hice es quitar en la linea total = ( fijo / 7) * Number(radioMarcado.value) + acumulado; el que dice acumulado

dejandolo asi

total = ( fijo / 7) * Number(radioMarcado.value) ;

y me salia ya el resultado de 74985.71

hasta ahi todo perfecto

por que si se hace en la calculadora es 90500 / 7 * 5.80 = 74985.71

todo excelente hasta ahi

pero a la hora de que quiero agregar la seccion de de accesorios como lo había indicado en la formula que era producto /7 * medida + accesorios pueden ser 1 a mas selecciones...

yo coloque esa seccion pero a la hora de sumar agregue ahora en la linea de acumulado no me sale la opción de la suma de accesorios

te dejo el link amigo muchas gracias


http://jsfiddle.net/redx702/nn42mt75/6/

Última edición por red_x_702; 10/09/2014 a las 10:19

Etiquetas: html, input, multiplicacion
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 12:58.