Foros del Web » Programando para Internet » Javascript »

Contador de cantidades.

Estas en el tema de Contador de cantidades. en el foro de Javascript en Foros del Web. Hola. Tengo éste código en un ciclo for que se recorre cierta cantidad de veces: Código PHP: <input name="nombre[ <?php  echo  $z ; ?> ]" type="text" value="0.00" onkeyup="total.value =  <?php  ...
  #1 (permalink)  
Antiguo 16/07/2009, 17:08
 
Fecha de Ingreso: junio-2009
Mensajes: 250
Antigüedad: 14 años, 11 meses
Puntos: 1
Contador de cantidades.

Hola.

Tengo éste código en un ciclo for que se recorre cierta cantidad de veces:

Código PHP:
<input name="nombre[<?php echo $z;?>]" type="text" value="0.00" onkeyup="total.value = <?php echo $monto;?> - this.value."/>
Lo que estoy tratando de hacer es que en la variable '$monto' tengo una cantidad, entonces por cada vez que se recorra el ciclo for, digamos tres veces, en la caja de texto que puse arriba se van a poner cantidades, digamos que '$monto= 15000;' y en las tres cajas de texto que se van a crear pongo los valores 10000, 1000 y 1500.

Yo tengo otra caja:

Código PHP:
<input type="text" name="total" id="total" value="" disabled
Se supone, o lo que yo tenía planeado es que tomando en cuenta lo que puse antes, debería aparecer '2500' en la caja 'total', ya que restando 10000, 1000 y 1500 a 15000 da '2500', pero no pasa nada. ¿Alguna idea de que podría estar haciendo mal?

Gracias de antemano.

Saludos.
  #2 (permalink)  
Antiguo 16/07/2009, 17:18
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Contador de cantidades.

Como es que haces la suma?, ya que en el codigo que expones solo hay partes de Javascript (que por cierto es incorrecto tu algoritmo).

Saludos.
  #3 (permalink)  
Antiguo 16/07/2009, 17:34
 
Fecha de Ingreso: junio-2009
Mensajes: 250
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Contador de cantidades.

Es lo que no estoy muy seguro, tenía la idea de sólo restar, pero ya veo que no funciona así.

¿Cómo me sugieres que lo ponga?

Saludos.
  #4 (permalink)  
Antiguo 16/07/2009, 17:48
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Contador de cantidades.

Pues si necesitas contar al cambiar el valor en la caja de texto, necesitas Javascript (forzosamente), si quieres contar en PHP necesitas enviar todo el formulario a PHP.

Saludos.
  #5 (permalink)  
Antiguo 16/07/2009, 17:52
 
Fecha de Ingreso: junio-2009
Mensajes: 250
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Contador de cantidades.

¿Entonces podrías ayudarme con el código en javascript o en su defecto moverlo a su respectivo foro?

Saludos.
  #6 (permalink)  
Antiguo 16/07/2009, 17:55
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Contador de cantidades.

Con gusto.

Saludos
  #7 (permalink)  
Antiguo 16/07/2009, 19:01
Avatar de djaevi  
Fecha de Ingreso: marzo-2007
Ubicación: Moreno, Buenos Aires
Mensajes: 400
Antigüedad: 17 años, 1 mes
Puntos: 47
Respuesta: Contador de cantidades.

Tendrias que hacer algo asi :D

Código PHP:
var cajas = new Array();
var 
monto 15000;

function 
restar() {
    for (var 
i=0i<3i++) {
        
cajas[i] = document.getElementById('valor'+i).value;
        
monto -= cajas[i];
    }
        
document.getElementById('totales').value monto;

Código HTML:
Valor 1 <input type="text" id="valor0" value="Ver Datos"/><br><br>
Valor 2 <input type="text" id="valor1" value="Ver Datos"/><br><br>
Valor 3 <input type="text" id="valor2" value="Ver Datos"/><br><br>
Totales <input type="text" id="totales" value="Ver Datos"/>
<input type="button" onclick="restar();" value="Restar"/> 
Si no entendes algo avisame

Saludos
  #8 (permalink)  
Antiguo 17/07/2009, 07:33
 
Fecha de Ingreso: junio-2009
Mensajes: 250
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Contador de cantidades.

Está muy bien tu idea, pero lo de los valores: Valor 1, Valor 2, etc. sólo es una caja de texto que se incrementa 'x' cantidad de veces dependiendo de una condición con un ciclo 'for', a lo que me refiero es que no siempre será 2, 15, 20, etc. ¿cómo podría introducir esa condición en el código js? o en su defecto ¿podría introducir el código js dentro del 'for' de php?, también el valor de '$monto' no siempre es 15000, puede variar.

El otro problema es que tengo que oprimir un botón para realizar la operación, y yo me pregunto ¿cómo podría hacer para que la resta se haga automática?, osea que en la caja de texto donde se va restando los valores, al momento de ir poniendo cantidades en: 'Valor1, Valor2..., etc.' automaticamente vaya disminuyendo la cantidad, o aumentando en caso de borrar algun valor, ¿me explico?

Sino, dime con toda confianza, gracias por tu ayuda.

Saludos.

Última edición por Gaug; 17/07/2009 a las 09:12
  #9 (permalink)  
Antiguo 17/07/2009, 17:37
Avatar de djaevi  
Fecha de Ingreso: marzo-2007
Ubicación: Moreno, Buenos Aires
Mensajes: 400
Antigüedad: 17 años, 1 mes
Puntos: 47
Respuesta: Contador de cantidades.

Uy perdon equivoque en el for en lugar de i<3 deberia ir i<cajas.length osea que va a ir desde 0 a la cantidad de cajas de texto que haya.

Con respecto a lo del boton tenes que llamar a la funcion restar() usando onchange dentro de cada input de texto asi cuando escribas o borres algo y deselecciones esa box se hara la cuenta tambien puedes usar los eventos key para que al ir pulsando cada numero vaya haciendo la cuenta...

Si no entendes algo de esto avisame :D

Salu2
  #10 (permalink)  
Antiguo 20/07/2009, 07:35
 
Fecha de Ingreso: junio-2009
Mensajes: 250
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Contador de cantidades.

Ya hice lo que me dijiste, djaevi, pero en la textbox donde se supone se va mostrando el monto restante, simplemente me muestra el monto, no me lo resta sin importar la cantidad que ponga.

¿Alguna idea?

De nuevo muchas gracias por tu ayuda.
  #11 (permalink)  
Antiguo 20/07/2009, 13:19
Avatar de djaevi  
Fecha de Ingreso: marzo-2007
Ubicación: Moreno, Buenos Aires
Mensajes: 400
Antigüedad: 17 años, 1 mes
Puntos: 47
Respuesta: Contador de cantidades.

Hola mira aca me puse con un poco de tiempo a revisarlo y quedo asi, funciona lo mas bien igual probalo...

Código PHP:
function restar() {
var 
monto 15000;
var 
inputs document.getElementsByTagName('input');
var 
total document.getElementById('totales');
    for (var 
i=0i<inputs.lengthi++) {
        if (
inputs[i].id.substring(0,5) == 'valor') {
            
monto -= Number(inputs[i].value);
        }
    }
        
total.value monto;
}

window.onload = function() {
var 
inputs document.getElementsByTagName('input');
    for (var 
i=0i<inputs.lengthi++) {
        
inputs[i].onkeyup restar;
    }

Código HTML:
Valor 1 <input type="text" id="valor0"/><br><br>
Valor 2 <input type="text" id="valor1"/><br><br>
Valor 3 <input type="text" id="valor2"/><br><br>
Totales <input type="text" id="totales" value="Resta"/> 
Cualquier cosa me avisas

Saludos
  #12 (permalink)  
Antiguo 20/07/2009, 15:48
 
Fecha de Ingreso: junio-2009
Mensajes: 250
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Contador de cantidades.

Funciona perfecto!

¿Te podría pedir otras 2 cosas?

Lo primero sería, ¿cómo podría recibir una variable de php de una página anterior y declararsela a la variable de js 'monto'?, ya que no es un valor fijo.

Y la otra, ¿cómo podría hacer para que me mande un alert, al momento de dar click en un botón que tengo que se llama 'Siguiente', que me verifique si en la caja de texto 'totales' si es 0, que no pase nada, pero si es diferente de '0', que me mande un alert. ¿cómo podría hacer eso?

De nuevo muchísimas gracias por tu ayuda.

EDIT: Ya resolví lo del alert, solamente sería lo de recibir la variable php de la página anterior y ponerla dentro de la función.

Espero puedan ayudarme, saludos.

Última edición por Gaug; 20/07/2009 a las 17:10
  #13 (permalink)  
Antiguo 20/07/2009, 17:25
Avatar de djaevi  
Fecha de Ingreso: marzo-2007
Ubicación: Moreno, Buenos Aires
Mensajes: 400
Antigüedad: 17 años, 1 mes
Puntos: 47
Respuesta: Contador de cantidades.

Código PHP:
function restar() {
var monto = <?php echo $_POST['monto']; ?>;
var inputs = document.getElementsByTagName('input');
var total = document.getElementById('totales');
    for (var i=0; i<inputs.length; i++) {
        if (inputs[i].id.substring(0,5) == 'valor') {
            monto -= Number(inputs[i].value);
        }
    }
        total.value = monto;
}

function validarMonto() {
var monto = document.getElementById('totales').value;
var montoInicial = <?php echo $_POST['monto']; ?>;
    if (monto == montoInicial) {
        alert('debe ingresar al menos un numero para realizar la resta');
    }else{
        alert('la resta se realizo correctamente');
    }
}

window.onload = function() {
restar();
var inputs = document.getElementsByTagName('input');
    for (var i=0; i<inputs.length; i++) {
        inputs[i].onkeyup = restar;
    }
document.getElementById('siguiente').onclick = validarMonto;
}
Código HTML:
Valor 1 <input type="text" id="valor0"/><br><br>
Valor 2 <input type="text" id="valor1"/><br><br>
Valor 3 <input type="text" id="valor2"/><br><br>
Totales <input type="text" id="totales" value="Resta"/>
<input type="button" id="siguiente" value="siguiente" /> 
aca esta le cambie algunas cosas y funciona lo unico que tenes que hacer ahora es un formulario en la pagina previa que pase la variable yo use un formulario asi...

Código HTML:
<form action="productos.php" method="post">
<input type="text" name="monto" />
<input type="submit" value="enviar" />
</form> 
salu2
  #14 (permalink)  
Antiguo 20/07/2009, 17:50
 
Fecha de Ingreso: junio-2009
Mensajes: 250
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Contador de cantidades.

Muchas gracias por tu ayuda, en realidad ya había resuelto lo del 'alert', pero te lo agradezco.

Y sobre recibir la variable puse así tal cual lo tienes, pero en la parte inferior izquierda del navegador me pone "Error en la página", aunque todo lo demás se visualiza normalmente, así que no recibe correctamente la variable.

¿Alguna idea? Las funciones las coloco dentro del <head></head>

Saludos.
  #15 (permalink)  
Antiguo 20/07/2009, 18:34
Avatar de djaevi  
Fecha de Ingreso: marzo-2007
Ubicación: Moreno, Buenos Aires
Mensajes: 400
Antigüedad: 17 años, 1 mes
Puntos: 47
Respuesta: Contador de cantidades.

Si las funciones van dentro del head el error en la pagina debe ser porque tenes que modificar el action del formulario por el nombre de la pagina php que vos estas usando.

Salu2
  #16 (permalink)  
Antiguo 20/07/2009, 18:40
 
Fecha de Ingreso: junio-2009
Mensajes: 250
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Contador de cantidades.

No es el action, verás, yo paso otras variables 'hidden' y éstas si se pasan correctamente, la de 'monto' es la única que no la recibe bien, pienso que es porque está dentro de head, pero no sé mucho de javascript entonces no estoy seguro.

Saludos.
  #17 (permalink)  
Antiguo 20/07/2009, 19:34
Avatar de djaevi  
Fecha de Ingreso: marzo-2007
Ubicación: Moreno, Buenos Aires
Mensajes: 400
Antigüedad: 17 años, 1 mes
Puntos: 47
Respuesta: Contador de cantidades.

mmm proba de pasar el monto a alguna variable en el body pero es raro porque yo lo probe con eso en el head y funciono sino la otra puede ser el metodo tendrias que ir probando.

Cualquier cosa avisame

Salu2
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 17:11.