Foros del Web » Programando para Internet » Javascript »

duda con suma de campos generados por php y myql

Estas en el tema de duda con suma de campos generados por php y myql en el foro de Javascript en Foros del Web. hola amigos de foros del web tengo la siguiente duda genero un formulario a traves de una consulta por mysql haciendo una tabla con los ...

  #1 (permalink)  
Antiguo 03/11/2008, 16:04
 
Fecha de Ingreso: noviembre-2006
Mensajes: 83
Antigüedad: 17 años, 5 meses
Puntos: 0
duda con suma de campos generados por php y myql

hola amigos de foros del web tengo la siguiente duda genero un formulario a traves de una consulta por mysql haciendo una tabla con los articulos pero quisier hacer una suma y un total con los datos entregados pero como no conosco cuantos valores se muestran se me ha hecho dificil realizar esta tarea no se si me explico bien

saludos!!!
  #2 (permalink)  
Antiguo 03/11/2008, 18:37
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: duda con suma de campos generados por php y myql

Depende de cómo devuelves el HTML. Por ejemplo, pudieras con PHP imprimir en una variable el total de registros, o dependiendo de cómo tienes los ids o names de los elementos puedes hacer un for que vaya recorriendo hasta que encuentre el final.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 03/11/2008, 18:47
 
Fecha de Ingreso: noviembre-2006
Mensajes: 83
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: duda con suma de campos generados por php y myql

mira para identificar cada valor les puse un contador
$p = $p+1;

<input name="cantidad" type="text" id="cantidad<?php echo $p ?>" value="<?=$row3['cantidad']?>" size="5" readonly="readonly" />

<td width="22%"><label> <input name="precio" type="text" class="formulario" id="precio<?php echo $p ?>" value="0" size="10" /> </label>

<input name="valor" type="text" id="valor<?php echo $p ?>" value="0" size="20" readonly="readonly" />

entonces en cada vuelta me asigan un id independiente a cada elemento pero como identificarlos en la funcion??

entonces la idea mia es poner un evento onblur="calcular(); sumatotal();" para ver cuando se produce el cambio y multiplicar la cantidad x el valor ya dema una suma final
  #4 (permalink)  
Antiguo 03/11/2008, 18:55
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: duda con suma de campos generados por php y myql

Lo que puedes hacer es pasarle como parámetro a la función que se ejecuta en el onblur "this", o sea el elemento en que se produjo el evento, con lo cual podrás obtener su id y sabrás a qué elemento específicamente se refiere.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 03/11/2008, 19:01
 
Fecha de Ingreso: noviembre-2006
Mensajes: 83
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: duda con suma de campos generados por php y myql

pero como lo hago para indetifar los otros 2 campos el q tiene la cantidad y el campo q tiene la suma
  #6 (permalink)  
Antiguo 03/11/2008, 19:26
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: duda con suma de campos generados por php y myql

No es muy difícil, ya que teniendo el elemento en que se generó el evento también puedes obtener su id (elemento.id) y con substr obtener el número asignado y a partir de ahí ya podrás obtener también el id de los demás elementos.

Saludos .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 03/11/2008, 19:28
 
Fecha de Ingreso: noviembre-2006
Mensajes: 83
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: duda con suma de campos generados por php y myql

me puede ayudar con una ejemplo
  #8 (permalink)  
Antiguo 03/11/2008, 19:39
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: duda con suma de campos generados por php y myql

Por ejemplo:
Código html:
Ver original
  1. <input type="text" id="precio312" onblur="detect(this)" />
Código javascript:
Ver original
  1. function detect(obj) {
  2. var number = obj.id.substr(6, obj.id.length - 6); /* Obtener desde la sexta posición hasta el final */
  3. alert("Los demás elementos son\ncantidad" + number + "\nvalor" + number);
  4. }
En este caso en number tenemos el número único asignado para los elementos.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 03/11/2008, 19:45
 
Fecha de Ingreso: noviembre-2006
Mensajes: 83
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: duda con suma de campos generados por php y myql

la verdad no me deja muy claro me puedes explicar un poco mas
  #10 (permalink)  
Antiguo 03/11/2008, 19:50
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: duda con suma de campos generados por php y myql

¿Qué parte exactamente es la que no has entendido?. Lo que hace el código es simplemente obtener el id del elemento en que se produce el evento y obtener el número que le colocas al final para que el id sea único, obteniendo ese número ya podemos saber el id de los otros dos elementos.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #11 (permalink)  
Antiguo 03/11/2008, 20:01
 
Fecha de Ingreso: noviembre-2006
Mensajes: 83
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: duda con suma de campos generados por php y myql

ya ahora entendi el codigo pero te puedo molestar con lo ultimo que seria la aplicaion de la multiplicacion para los valores muchas gracias
  #12 (permalink)  
Antiguo 03/11/2008, 20:04
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: duda con suma de campos generados por php y myql

Para la multiplicación solo necesitas usar el operador *
Código javascript:
Ver original
  1. obj.value = parseFloat(valor1.value) * parseFloat(valor2.value)
En ese caso lo único que necesitas hacer es obtener las referencias a los input correspondientes.

Seguro que te será útil leer los manuales que hay en las FAQ's .

Saludos .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #13 (permalink)  
Antiguo 03/11/2008, 20:26
 
Fecha de Ingreso: noviembre-2006
Mensajes: 83
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: duda con suma de campos generados por php y myql

muchas gracias amigo me quedo todo muy claro
  #14 (permalink)  
Antiguo 03/11/2008, 21:00
 
Fecha de Ingreso: noviembre-2006
Mensajes: 83
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: duda con suma de campos generados por php y myql

this.document.form1.valor+number.value = Math.ceil(this.document.form1.cantidad+number.valu e * this.document.form1.precio+number.value)

he agregado esto pero no me muestra el valor para el campo valor
  #15 (permalink)  
Antiguo 03/11/2008, 21:05
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: duda con suma de campos generados por php y myql

Prueba así:
Código javascript:
Ver original
  1. document.form1["valor"+number].value = Math.ceil(document.form1["cantidad"+number].value * document.form1["precio"+number].value)
La forma como estabas tratando de concatenar para formar el nombre estaba mal, primero que el comienzo debería ir entre comillas porque es literal y segundo que debería ir entre corchetes para que lo reconozca como elemento de form1.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #16 (permalink)  
Antiguo 03/11/2008, 21:08
 
Fecha de Ingreso: noviembre-2006
Mensajes: 83
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: duda con suma de campos generados por php y myql

ya lo probé anda perfecto
  #17 (permalink)  
Antiguo 03/11/2008, 21:58
 
Fecha de Ingreso: noviembre-2006
Mensajes: 83
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: duda con suma de campos generados por php y myql

amigo la ultima duda para terminar este caso

function detect(obj) {

var number = obj.id.substr(6, obj.id.length - 6); /* Obtener desde la sexta posición hasta el final */
document.form1["valor"+number].value = Math.ceil(document.form1["cantidad"+number].value * document.form1["precio"+number].value)

subTotal=document.form1["valor"+number].value
valorTotal = valorTotal + subTotal
document.form1.total.value = valorTotal


}

asi quedo la funcion pero no me entra el valor de la suma total en el campo total disculpa tantas molestias
  #18 (permalink)  
Antiguo 03/11/2008, 22:09
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: duda con suma de campos generados por php y myql

Es que estás tratando de sumar el valor de una variable que a la primera vez aún no está definida (valorTotal), por lo que fuera de la función deberías definirla:
Código javascript:
Ver original
  1. valorTotal = 0;
Y recuerda que puedes usar += para sumar un valor a una variable:
Código javascript:
Ver original
  1. valorTotal += subTotal;
Aunque tu código tiene el pequeño problema que si vuelves para modificar un valor continuará sumando, por lo que dependiendo de cuántos sean los valores creo que es mejor recorrerlos todos para obtener el total , o restar el valor al total al recibir el enfoque y volver a sumarlo al salir.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #19 (permalink)  
Antiguo 03/11/2008, 22:21
 
Fecha de Ingreso: noviembre-2006
Mensajes: 83
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: duda con suma de campos generados por php y myql

si tienes razón pasa exactamente eso sigue sumando aunque se modifique el valor como seria si le resto el valor al principio?
  #20 (permalink)  
Antiguo 03/11/2008, 22:31
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: duda con suma de campos generados por php y myql

Puedes usar el evento onfocus(al recibir el enfoque) para restar el valor actual del total y cuando se salga (onblur) volver a sumar el nuevo valor.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #21 (permalink)  
Antiguo 04/11/2008, 12:42
 
Fecha de Ingreso: noviembre-2006
Mensajes: 83
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: duda con suma de campos generados por php y myql

creo q tampoco resta bien

<td width="22%"><label> <input name="precio" type="text" class="formulario" id="precio<?php echo $p ?>" value="0" size="10" onfocus="resta(this);" onblur="detect(this);" /> </label>

function resta(obj) {

var number = obj.id.substr(6, obj.id.length - 6); /* Obtener desde la sexta posición hasta el final */
document.form1.total.value = document.form1.total.value - document.form1["valor"+number].value

}
  #22 (permalink)  
Antiguo 04/11/2008, 12:52
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: duda con suma de campos generados por php y myql

Es que debes restar de valorTotal también, además, cuidado al tratar de hacer operaciones matemáticas con cadenas, de preferencia conviértelas usando parseFloat() o parseInt() según el caso.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #23 (permalink)  
Antiguo 04/11/2008, 13:12
 
Fecha de Ingreso: noviembre-2006
Mensajes: 83
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: duda con suma de campos generados por php y myql

me puedes ayudar con un ejemplo
  #24 (permalink)  
Antiguo 04/11/2008, 13:15
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: duda con suma de campos generados por php y myql

Cita:
Iniciado por dinamo Ver Mensaje
me puedes ayudar con un ejemplo
Es que me gustaría que tú intentaras también un poco, muestres cómo has intentado, y si no te sale, tratamos de arreglarlo, así aprenderás mucho más.

Saludos .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #25 (permalink)  
Antiguo 04/11/2008, 13:50
 
Fecha de Ingreso: noviembre-2006
Mensajes: 83
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: duda con suma de campos generados por php y myql

function resta(obj) {

var number = obj.id.substr(6, obj.id.length - 6); /* Obtener desde la sexta posición hasta el final */
tot = parseInt(document.form1.total.value)
val = parseInt(document.form1["valor"+number].value)

document.form1.total.value = tot - val

}

no resulta por empieza restar cada ves q hago un onblur
  #26 (permalink)  
Antiguo 04/11/2008, 13:55
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: duda con suma de campos generados por php y myql

Como te había comentado, necesitas restar de valorTotal, ya que después usas esa variable para la suma.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #27 (permalink)  
Antiguo 04/11/2008, 13:55
 
Fecha de Ingreso: noviembre-2006
Mensajes: 83
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: duda con suma de campos generados por php y myql

var valorTotal = 0;
var tot = 0;
var val = 0;

function detect(obj) {

var number = obj.id.substr(6, obj.id.length - 6); /* Obtener desde la sexta posición hasta el final */
document.form1["valor"+number].value = Math.ceil(document.form1["cantidad"+number].value * document.form1["precio"+number].value)

tot = parseInt(document.form1.total.value)
val = parseInt(document.form1["valor"+number].value)

document.form1.total.value = tot + val


}
function resta(obj) {

var number = obj.id.substr(6, obj.id.length - 6); /* Obtener desde la sexta posición hasta el final */
tot = parseInt(document.form1.total.value)
val = parseInt(document.form1["valor"+number].value)

document.form1.total.value = tot - val

}

creo q por ahi anda
  #28 (permalink)  
Antiguo 04/11/2008, 13:56
 
Fecha de Ingreso: noviembre-2006
Mensajes: 83
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: duda con suma de campos generados por php y myql

tot = parseInt(document.form1.total.value)
val = parseInt(document.form1["valor"+number].value)

document.form1.total.value = tot - val

a q te refieres si aqui resto el valor total
  #29 (permalink)  
Antiguo 04/11/2008, 13:59
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: duda con suma de campos generados por php y myql

Me refería al valorTotal ya que lo estabas usando para la suma, pero ahora veo que ya no lo estás usando. Bueno, de la forma como pusiste debería funcionar, ¿qué sucede de la forma como está ahora? ¿algún error?.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #30 (permalink)  
Antiguo 04/11/2008, 14:13
 
Fecha de Ingreso: noviembre-2006
Mensajes: 83
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: duda con suma de campos generados por php y myql

quedo funcionando perfecto funciona asi

cuando te pones en el imput comienza restando el valor al total luego al hacer el cambio suma con los valores actualizados al hacer clic en otro input esta es la mejor forma de hacer esta suma o existe otra
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 16:19.