Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    Somma progressiva da form

    Buongiorno a tutti,
    il mio problema e' il seguente:
    Ho un form generato in seguito a una query sql tramite php che produce un numero x di righe a seconda del numero di record trovati.
    Su ogni riga del form ho aggiunto una casella dove l'utente puo' scrivere una quantita'.
    Devo verificare che la somma totale delle quantita' scritte dall'utente non superi un certo numero (per esempio 6).
    Passo quindi a un javascript il valore della riga (e fin qui tutto bene) e poi... non riesco a ottenere il totale.
    Dove sto sbagliando?

    ecco quello che ho (semplificato all'osso):

    <script language="JavaScript">
    function totalizzo(valore){
    var totale;
    var quant=valore;

    if(!(valore==0)){

    if (isNaN(totale)){

    totale=quant;
    }else{totale+=quant;
    return totale;}


    window.document.pippo.tot.value=totale;

    }
    }
    </script>

  2. #2
    Ciao non puoi fare il test valore==0 in quanto valore è una stringa.

  3. #3
    ciao, quindi devo convertire (valore) in numero? Ma in effetti quello che succede e' che nel form visualizzo (totale) sempre uguale all'ultima quantita' inserita. Quando inserisco 1 - ad esempio - nella prima riga la casella totale mi ritorna 1, quando inserisco un 2 in un'altra riga la casella totale non mi visualizza 3 (1 + 2) ma visualizza 2.
    Comunque ora provo a convertire (valore) in numero e poi ti dico.
    Grazie per ora.

  4. #4
    allora ho fatto le seguenti modifiche (ricordo che lo scopo e' che la variabile (totale) diventi la somma di tutte le variabili (valore) via via che queste passano allo script per poi essere aggiornato all'interno dello stesso form:
    Nonostante io abbia convertito (valore) in numero totale continua ad essere uguale all'ultimo valore inserito. Niente somma. :-(

    <script language="JavaScript">
    function totalizzo(valore){
    parseInt(valore);
    var totale;
    var quant=valore;
    var costo=(quant * 2);
    if(!(valore==0)){

    //if (isNaN(totale)){
    //if (totale==""){
    if (totale == null){
    totale=quant;
    }else{
    totale=totale+quant;
    return totale;}


    window.document.pippo.tot.value=totale;

    }
    window.document.pippo.cost.value=costo;
    }
    </script>

  5. #5
    ciao,la funzione parseInt NON modifica il tipo contenuto in valore ma ritorna un intero che è appunto la conversione di ciò chr gli passi come argomento.
    In altre parole per "catturare" la versione int di valore,devi fare

    valore_versione_int=parseInt(valore)

  6. #6
    si hai ragione, ho corretto, resta il fatto che non riesco a ottenere la somma all'interno della variabile "totale"

    <script language="JavaScript">

    function totalizzo(valore){

    totale=parseInt(totale);
    var quant=valore;
    var costo=(quant * 2);
    if(!(valore==0)){

    if (totale == 0){

    totale=quant;

    }
    else if(totale > 0){
    totale=totale+quant;
    return totale;
    }

    window.document.pippo.tot.value=totale;

    }
    window.document.pippo.cost.value=costo;
    }
    </script>

  7. #7
    Ciao,puoi postare il codice del form e indicare come intendi implementare la chiamata a funzione?

  8. #8
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    se hai più campi dovresti come minimo fare un ciclo for per poter sommare i vari value

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  9. #9
    potete trovare la pagina (non e' finita, ma il senso e' quello...) all'indirizzo http://www.arsnaturalis.com/schedanat3.php
    (lo so, avrei potuto dirvelo prima...)
    Grazie per l'aiuto.

  10. #10
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    ok, tu lo associ all'onchange....beh...fai qualcosa tipo
    var sub_t = this.value;
    var totale += sub_t;
    prova qualcosa del genere

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.