Visualizzazione dei risultati da 1 a 10 su 10

Discussione: pannello con importi

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630

    pannello con importi

    Carissimi,
    stò creando un pannello con degli importi euro tipo (1.000,00)
    Ora non riesco a fare la somma in tempo reale anche utilizzando campi hidden di campi.
    Cioè da 2 campi che recupero dal db vorrei la somma al caricamento del pannello.
    Potete aiutarmi?
    Grazie
    G.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630
    ma è proprio così difficile?

  3. #3
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Originariamente inviato da djjunior
    ma è proprio così difficile?
    Senza vedere una riga del codice che hai fatto e/o la pagina di cui parli si, non fosse altro per la necessita' di reinventarsi tutto.

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630
    Ecco il codice che stò utilizzando.
    Vorrei la somma compresa gli zeri:
    importo_a = 3.000,00
    importo_b = 2.450,00
    come totale mi dà 5.45 invece di 5.450,00 (come vorrei io)ù
    cioè non vorrei togliere gli zeri.

    codice:
    function calcola_somma()
    {
        var s = 0;
        for(var i = 0; i < arguments.length; i++)
        {
            var n = null;
            var v = arguments[i];
            if( typeof(v) == "string" )
            {
                n = document.getElementById(v).value.replace(",", ".");
                s += ((isNaN(parseFloat(n)))?0:parseFloat(n));    
            }
            else if(v instanceof Array)
            {
                for(var i = 0; i < v.length; i++)
                {
                    n = document.getElementById(v[i]).value.replace(",", ".");
                    s += ((isNaN(parseFloat(n)))?0:parseFloat(n));    
                }
            }
        }
        return s;
    }
    
    function calcola()
    {
        var somma = calcola_somma("importo_a", "importo_b");
        document.getElementById("div1").innerHTML = somma;
    }
    Dopo il body:
    codice:
    <body onLoad="calcola();">
    
    <div id="div1"></div>
    Grazie
    G.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630
    aiutatemi

  6. #6
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Originariamente inviato da djjunior
    aiutatemi
    Calma, leggi il regolamento

    Intanto se tu che sbagli: in javascript i valori numerici si scrivono in notazione americana, ovvero con il punto decimale, quindi

    importo_b = 2.450,00

    viene giustamente interpretato come 2 e 45 centesimi e la parte dopo la virgola ignorata (anzi, potrebbe generare un errore di sintassi).

    Prova a riformulare il tutto alla luce di questa notizia...

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630
    Mi scuso, ma sono veramente disperato...
    Comunque non saprei dove mettere mano anche perchè a me serve in questa forma (cioè forma euro), mi puoi consigliare? Eventualmente utilizzando anche un'altro script.
    Grazie come sempre.
    G.

  8. #8
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    codice:
    <script>
    function calcola_somma()
    {
        var s = 0;
        for(var i = 0; i < arguments.length; i++)
        {
            var n = null;
            var v = arguments[i];
            if( typeof(v) == "string" )
            {
                n = document.getElementById(v).value.replace(",", ".");
                s += ((isNaN(parseFloat(n)))?0:parseFloat(n));    
            }
            else if(v instanceof Array)
            {
                for(var i = 0; i < v.length; i++)
                {
                    n = document.getElementById(v[i]).value.replace(",", ".");
                    s += ((isNaN(parseFloat(n)))?0:parseFloat(n));    
                }
            }
        }
        s = String(s*100);
    	return s.substr(0,s.length-2)+","+s.substr(s.length-2,2)
    	
    }
    
    function calcola()
    {
        var somma = calcola_somma("importo_a", "importo_b");
        document.getElementById("div1").innerHTML = somma;
    }
    </script>
    <body onLoad="calcola();">
    <input type="text" id="importo_a" value="3,55">
    <input type="text" id="importo_b" value="2,45">
    <div id="div1"></div>
    </body>
    Lo script non faceva esattamente quello che pensavi tu... studia attentamente la soluzione che ti ho inviato e cerca di scoprirne il funzionamento.

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630
    Grazie br1
    per il tuo aiuto, purtroppo lo script non l'ho fatto io di javascript non ne capisco molto e non saprei dove mettere le mani per modificarlo alle mie esigenze, puoi indicarmi uno script che fa la somma nel modo che ho indicato prima?
    Ho provato anche quest'altro script ma il risultato è sempre quello per me errato.
    codice:
    <script type="text/javascript">
    function somma(ff) {
      var A = parseFloat(ff.importo_a.value);
      var B = parseFloat(ff.importo_b.value);
    
      ff.totale.value = A+B;
    }
    </script>
    Ti prego aiutami.
    Grazie e scusami.
    G.

  10. #10
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    La paginetta di prova che ti ho postato fa quello che chiedi, per quello che ho potuto capire dalla tua domanda... se lo hai provato ma le tue esigenze sono altre ti prego, spiegale meglio, maga dicci da dove prelevi i dati da sommare ed in quale occasione li devi sommare...

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

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.