Foros del Web » Programando para Internet » Javascript »

Sumar valor digitado en N textbox y mostrar resultado

Estas en el tema de Sumar valor digitado en N textbox y mostrar resultado en el foro de Javascript en Foros del Web. URGENTE. Genere unos textbox con php "La cantidad es variable". lo que quiero es capturar el numero que se digite en cada uno de los ...
  #1 (permalink)  
Antiguo 14/10/2007, 20:41
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años, 6 meses
Puntos: 50
Sumar valor digitado en N textbox y mostrar resultado

URGENTE.


Genere unos textbox con php "La cantidad es variable".

lo que quiero es capturar el numero que se digite en cada uno de los textbox digitados y mostrar el resultado

Me puede ayudar profa lo mas pronto posible

GRACIAS
  #2 (permalink)  
Antiguo 15/10/2007, 23:46
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años, 6 meses
Puntos: 50
Re: Sumar valor digitado en N textbox y mostrar resultado

Imposible que ninguno de ustedes sepa ayudenme porfa que es de caracter
URGENTE
  #3 (permalink)  
Antiguo 16/10/2007, 16:15
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 21 años, 1 mes
Puntos: 45
Re: Sumar valor digitado en N textbox y mostrar resultado

Hombre helacer. Postear tu pregunta con 5 "oraciones", y que tres de ellas sean "URGENTE", "Me puede ayudar profa lo mas pronto posible" y "GRACIAS" no nos da mucho márgen al entendimiento.

Un código HTML de ejemplo (PHP no a poder ser); lo que has intentado; el ejemplo de lo que te gustaría conseguir...

Acostumbrate a explayar tus cuestiones de una manera amplia. LEER antes de preguntar en este foro. También deberías tener en cuenta aquello de "cómo hacer preguntas inteligentes".


Un saludo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #4 (permalink)  
Antiguo 16/10/2007, 22:06
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años, 6 meses
Puntos: 50
Re: Sumar valor digitado en N textbox y mostrar resultado

ok tendre encuenta sus consejos pero aparte de criticar mi pregunta tambien deberia ayudarme a solucionarla.

La explico de nuevo haber si alguien me puede ayudar.

tengo un while hecho en php y MySQL que carga un determinado numero de repuestos de una base de datos. Cada vez que imprime un repuesto a lado le genero un cuadro de texto donde el usuario debe digitar el precio de cada repuesto.

Lo que deseo es ir capturando el precio que el usuario digite en cada uno de etos campos de texto y al final en un campo de texto mostrar la suma de todos los valores OSEA EL VALOR TOTAL DE TODOS LOS REPUESTOS me pueden ayudar

Gracias


El codigo que tengo es algo asi:
Código PHP:
<?php
while ($Repuestos mysql_fetch_array($RegCargados))
{
    echo 
$Repuestos[Nombre]." <input type=text name=ValRepuesto />";
}
?>
En este textbox debe mostrarse el resultado de la suma del valor de los repuestos
Código HTML:
<input type="text" name="TotalRepuestos" /> 
  #5 (permalink)  
Antiguo 17/10/2007, 09:34
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 21 años, 1 mes
Puntos: 45
Re: Sumar valor digitado en N textbox y mostrar resultado

Cita:
Iniciado por helacer Ver Mensaje
ok tendre encuenta sus consejos pero aparte de criticar mi pregunta tambien deberia ayudarme a solucionarla.
Lo siento helacer, tu pregunta no llegaba a ser todo lo concreta que necesitaba.


Visto tu código, si todos los campos comparten el mismo atributo name podrías reunirlos con document.getElementsByName() y después recorrerlos con un for para ir sumando en una variable auxiliar su valor (su valor transformado a número flotante con parseFloat()).

El resultado final de esa variable auxiliar lo colocaríamos en TotalRepuestos:
document.getElementsByName("TotalRepuestos")[0].value = suma;




Una alternativa para document.getElementsByName (creo que IE se lleva un poco mal con ello) es document.tuNombreDeFormulario["nombreDeCampo"]. Éso te dará una colección de todos los campos que tengan por name nombreDeCampo.



Un saludo
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #6 (permalink)  
Antiguo 17/10/2007, 10:08
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años, 6 meses
Puntos: 50
Re: Sumar valor digitado en N textbox y mostrar resultado

Gracias derkenuke pero la verdad se poco cas nada de JavaScript. Como hago para llamar la funcion que pongo en el textbox, tengo queenviar parametros o algo asi. Me peude dar una breve ejemplo

Gracias de nuevo
  #7 (permalink)  
Antiguo 17/10/2007, 10:11
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 21 años, 1 mes
Puntos: 45
Re: Sumar valor digitado en N textbox y mostrar resultado

Hola de nuevo helacer:

Postéame un código base en XHTML y te daré un ejemplo para que veas de lo que hablo. Necesito un código de ejemplo sobre el que trabajar, al final haremos menos modificaciones para que se amolde a lo que necesitas.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #8 (permalink)  
Antiguo 17/10/2007, 10:57
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años, 6 meses
Puntos: 50
Re: Sumar valor digitado en N textbox y mostrar resultado

Mire hombre lo hice asi ayudeme a arreglarlo porfa:
Tambien estuve revisando un a cosita y es que si vamos acumulando el valor digitado en cada campo en caso de que el usuario modifique algun valor la suma quedaria mal hecha. La suma tocaria hacerla cuando el usuario termine de digitar todos los campos o yo no se. usted sabe mas que yo favor ayudeme a arreglarla pronto GRACIAS

Script Javascript
Código HTML:
<script language="javascript1.2">
ValTotal=0;
function suma(){
ValTotal= ValTotal + parseFloat(document.Orden["ValRepuesto"]);  
document.getElementsByName("TotalValor")[0].value = ValTotal;
return;
}  
</script> 
Genero los campos de texto, le puso la OnChange para llamar la funcion porque no sabia que mas ponerle.
Código PHP:
<?php 
while ($Repuestos mysql_fetch_array($RegCargados)) 

    echo 
$Repuestos[Nombre]." <input type=text name=ValRepuesto onChange=suma()  />"

?>
y este es el campo donde debe ir el resultado
Código HTML:
<input type="text" name="TotalValor" /> 
  #9 (permalink)  
Antiguo 17/10/2007, 11:21
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 21 años, 1 mes
Puntos: 45
Re: Sumar valor digitado en N textbox y mostrar resultado

Hola:

Sigo sin tener XHTML de ejemplo, pero en fin, me lo invento. Puede ser así:

Código PHP:
<form name="miForm" action="">
    <
input type="text" name="ValRepuesto" onblur="suma()" /><br/>
    <
input type="text" name="ValRepuesto" onblur="suma()" /><br/>
    <
input type="text" name="ValRepuesto" onblur="suma()" /><br/>
    <
input type="text" name="ValRepuesto" onblur="suma()" /><br/>
    <
input type="text" name="ValRepuesto" onblur="suma()" /><br/>
    <
input type="text" name="ValRepuesto" onblur="suma()" /><br/>
    <
input type="text" name="ValRepuesto" onblur="suma()" /><br/>
    <
hr/>
    <
input type="text" name="TotalValor" />
</
form>


<
script type="text/javascript">
<!--

function 
suma(){
    var 
camposValRepuesto document.miForm["ValRepuesto"];
    var 
camposValRepuesto_num camposValRepuesto.length;
    var 
total 0;
    for(var 
i=0total=0valori<camposValRepuesto_numi++) {
        
valor parseFloatcamposValRepuesto[i].value );
        if( !
isNaN(valor) )
            
total += valor;
    }
    
document.miForm["TotalValor"].value total;
}

// -->
</script> 
He puesto onblur por una cuestión de gustos, vale cualquier evento coherente. El script está preparado para un número indefinido de campos con el atributo name ValRepuesto.



Un saludo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #10 (permalink)  
Antiguo 17/10/2007, 12:02
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años, 6 meses
Puntos: 50
Re: Sumar valor digitado en N textbox y mostrar resultado

Gracias men ya medio la probe y me funciono rebien. Cualquier cosa lo vuelvo a molestar. Una preguntica ¿A que se referia cuando me pedia un XHTML ? el que puso usted tiene practicamente la misma informacion que el que yo puse claro pues el mio no funcionaba y estaba dividido por partes?

Saqueme de la duda


Gracias
  #11 (permalink)  
Antiguo 17/10/2007, 15:39
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 21 años, 1 mes
Puntos: 45
Re: Sumar valor digitado en N textbox y mostrar resultado

Me refería a que posteando PHP:
Código PHP:
<?php 
while ($Repuestos mysql_fetch_array($RegCargados)) 

    echo 
$Repuestos[Nombre]." <input type=text name=ValRepuesto onChange=suma()  />"

?>
Para probarlo yo a parte de tener que haber instalado el intérprete PHP, tendría que tener la misma base de datos y la misma tabla para que el while funcionase. Además no me puedo hacer a la idea de cuántos campos tienes, cómo se llama tu formulario, si usas HTML ó XHTML... esas historias.

Sin embargo publicando:
Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<head>
<meta http-equiv="Content-type" content="text/html;charset=iso-8859-1" />
<meta name="Author" content="derkeNuke" />
<title>Página nueva</title>
<style type="text/css">

</style>
</head>

<body>


<form name="miForm" action="">
    <input type="text" name="ValRepuesto" onblur="suma()" /><br/>
    <input type="text" name="ValRepuesto" onblur="suma()" /><br/>
    <input type="text" name="ValRepuesto" onblur="suma()" /><br/>
    <input type="text" name="ValRepuesto" onblur="suma()" /><br/>
    <input type="text" name="ValRepuesto" onblur="suma()" /><br/>
    <input type="text" name="ValRepuesto" onblur="suma()" /><br/>
    <input type="text" name="ValRepuesto" onblur="suma()" /><br/>
    <hr/>
    <input type="text" name="TotalValor" />
</form>


<script type="text/javascript">
<!--

function suma(){
 //aqui no se
}

// -->
</script>  

</body>
</html> 
Sé que trabajas con XHTML y DTD transitional, cómo se llama tu form, en qué punto insertas el script y cómo lo ejecutas, hasta dónde has llegado y qué no has podido resolver... y lo más importante: El código lo copiamos y pegamos en nuestro editor, y empezamos a trabajar con él, en lugar de tener que "inventárnoslo".

Comodidad para el que responde = respuestas más rápidas y efectivas.


Un saludo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #12 (permalink)  
Antiguo 17/10/2007, 21:09
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años, 6 meses
Puntos: 50
Re: Sumar valor digitado en N textbox y mostrar resultado

Listo hombre resuelta mi duda y la funcion esta exactamente como la queria, pero encontre un problema no se si sepa porque es.

Cuando solo hay un repuesto, osea solo genera un cuadro de texto al digitarle el valor el cuadro de texto total queda en cero, La funcion solo funciona cuando se generan 2 o mas cuadros de texto para los valores ¿sabe donde esta el error????

Gracias, Suerte

Última edición por helacer; 17/10/2007 a las 22:36
  #13 (permalink)  
Antiguo 18/10/2007, 00:42
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 9 meses
Puntos: 772
Re: Sumar valor digitado en N textbox y mostrar resultado

Hola helacer

Lo que ocurre es que cuando sólo tienes un campo de texto, no se crea un array de elementos. He modificado un poco el código de derkenuke (¡Hola! )

Código PHP:
function suma(){
    var 
camposValRepuesto document.miForm["ValRepuesto"];
    var 
camposValRepuesto_num camposValRepuesto.length;
    var 
total 0;
    if(
camposValRepuesto_num == undefined)
       
document.miForm["TotalValor"].value document.miForm.elements[0].value
    else {
    for(var 
i=0total=0valori<camposValRepuesto_numi++) {
        
valor parseFloatcamposValRepuesto[i].value );
        if( !
isNaN(valor) )
            
total += valor;
    }
    
document.miForm["TotalValor"].value total;
    }

Saludos,
  #14 (permalink)  
Antiguo 18/10/2007, 08:38
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 21 años, 1 mes
Puntos: 45
Re: Sumar valor digitado en N textbox y mostrar resultado

Perfecto Javier!

No sé por qué últimamente me ha dado por experimentar con los || en vez de con los condicionales:
Código PHP:
<form name="miForm" action="">
    <
input type="text" name="ValRepuesto" onblur="suma()" /><br/>
    <!--<
input type="text" name="ValRepuesto" onblur="suma()" /><br/>
    <
input type="text" name="ValRepuesto" onblur="suma()" /><br/>
    <
input type="text" name="ValRepuesto" onblur="suma()" /><br/>
    <
input type="text" name="ValRepuesto" onblur="suma()" /><br/>
    <
input type="text" name="ValRepuesto" onblur="suma()" /><br/>
    <
input type="text" name="ValRepuesto" onblur="suma()" /><br/>-->
    <
hr/>
    <
input type="text" name="TotalValor" />
</
form>


<
script type="text/javascript">
<!--

function 
suma(){
    var 
camposValRepuesto document.miForm["ValRepuesto"];
    var 
camposValRepuesto_num camposValRepuesto.length || 1;
    var 
total 0;
    for(var 
i=0total=0valori<camposValRepuesto_numi++) {
        
valor parseFloatcamposValRepuesto.value || camposValRepuesto[i].value );
        if( !
isNaN(valor) )
            
total += valor;
    }
    
document.miForm["TotalValor"].value total;
}

// -->
</script> 
Son menos legibles, pero para los ahorradores de bytes


Un saludo.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.

Última edición por derkenuke; 18/10/2007 a las 11:20 Razón: ortografía
  #15 (permalink)  
Antiguo 18/10/2007, 12:25
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años, 6 meses
Puntos: 50
Re: Sumar valor digitado en N textbox y mostrar resultado

Listo muchachos Gracias a los dos por su ayuda. Ya la implemente y funciono como la queria.

Si en algun momento les puedo colaborar en algo no duden en pedirmelo. Yo soy programador PHP por si algun dia necesitan ayuda en algo.


Suerte
  #16 (permalink)  
Antiguo 07/11/2007, 23:20
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años, 6 meses
Puntos: 50
Re: Sumar valor digitado en N textbox y mostrar resultado

esta funcio que me pasaron hace rato es la que quiero modifcarla para usarla no con el mismo nombre para todos los campos ValRepuesto sino en un arreglo ValRepuesto[]

Como hago eso????????

DERKENUKE SI ANDA POR HAY SALVEME

GRACIAS
  #17 (permalink)  
Antiguo 08/11/2007, 09:00
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 21 años, 1 mes
Puntos: 45
Re: Sumar valor digitado en N textbox y mostrar resultado

Hola de nuevo:

Si no te he entendido mal, sólo tendrías que modificar esta línea para la obtención de campos:
Código PHP:
var camposValRepuesto document.miForm["ValRepuesto[]"]; 

Un saludo
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #18 (permalink)  
Antiguo 08/11/2007, 11:14
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años, 6 meses
Puntos: 50
Re: Sumar valor digitado en N textbox y mostrar resultado

Listo hombre si me complico por bobadas asi era lo que queria hacer. Pero tengo un problema.

Cuando se genera unicamente un campo de texto al campo TotalValor me le asigna es el valor que tiene el primer textbox que tiene el formulario. Como hago para que me le asigne el valor del campito de texto que se genero.

Creo que el error esta aca pero no e logrado corregirlo

Código HTML:
if(camposValRepuesto_num == undefined)
       document.miForm["TotalValor"].value = document.miForm.elements[0].value;
Gracias


Explico mire en el grafico yo genero un numero de orden de compra y lo envo en un campo oculto tipo "hidden". Este en realidad es el primer textbox que tiene el formulario y mire que ese valor se lo asigna al total y en realidad el total deberia quedar en 3232 que es el valor del unico textbox que se genero.


Última edición por helacer; 08/11/2007 a las 11:21
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 04:45.