Calcolare e formattare con javascript [Form!]

ClouDClauS

Nuovo Utente
14 Ago 2012
8
0
0
Ciao ragazzi ho questo form che mi sta facendo mandare ai pazzi, devo far si che il totale venga calcolato il base all'oggetto spuntato per il valore inserito nel campo grammi, il problema è che gli input da spuntare hanno un valore dinamico che viene aggiornato via csv e dopo deve subire un ulteriore moltiplicazione, credo di aver fatto tutti i passaggi possibili non capisco ma il form non esegue il calcolo... non riesco a capire dove è l'errore aiutatemi voi :crying:

Codice:
<html>
<head>
<script type="text/javascript">
function processForm() {
//get form variables
var theItems = document.getElementsByName( "item" );
var theQty = Number( document.getElementById( "qty" ).value );
var thePrice = Number( document.getElementById( "price" ).value);

//variable for selected item
var selectedItem;

//variable for order total
var orderTotal = 0.00;

//the display box
var outBox = document.getElementById( "total" );

//set selectedItem = checked item
for(var i = 0; i < theItems.length; i++) {
if( theItems[i].checked) {
selectedItem = theItems[i].value;
break;
}
}

//get price for selected item
switch(selectedItem) {
case "A":
total = thePrice * 0.916;
break;
case "B":
total = thePrice * 0.999;
break;
default:
total = 0.00;
}

//figure final total
total = (selectedItem * theQty);

//output to text box
outBox.value = "€ " + total.toString();
}
</script>
</head>
<body>
 <?php
        $remoteFileAddr = "http://dodygold1.altervista.org/csv/oro.csv";
        // apri il file in lettura
        $fr = fopen($remoteFileAddr, 'r');
        // crei un arrary che conterra le righe
        $righe = array();
        // cicli il file
        while (!feof($fr)) {
            // riempi l'array
            $righe[] = fgets($fr);
        }

        // a te interessa il secondo elemento che contiene il numero quindi $righe[1]
        echo <<< FORM
<form id="form1" action="" method="get">
22KT <input type="radio" name="item" value="A" /> 24KT <input type="radio" name="item" value="B" /><br>
Valore del Fixing di Londra -0.40cent<br>
<input type="text" id="price" size="20" maxlength="20" readonly="readonly" value="{$righe[1]}" /><br>
Peso in Grammi: <input type="text" id="qty" size="10" maxlength="10" value="1" /><br>

Totale: <input type="text" id="total" size="20" maxlength="20" readonly="readonly" value="0.00" /><br>
<input type="button" id="submit" value="Calcola il Totale" onclick="processForm()" />
</form>
FORM;
        ?>
</body>
</html>
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao,
molto piu semplice di quello che pensi
HTML:
<script type="text/javascript">
            function processForm() {
                // recuperi il prezzo
                var price = document.getElementById('price').value;
                // recuperi la quantita
                var qta = document.getElementById('qty').value;
                // moltiplichi
                var totale = price * qta;
                // mostri
                document.getElementById('total').value = totale;
            }
        </script>
nella discussione su php nelle note ti ho scritto di usare il punto per facilitare i calcoli

PS: cerca di usare titoli piu specifici per facilitare la ricerca aglialtri utenti
 
Ultima modifica:

ClouDClauS

Nuovo Utente
14 Ago 2012
8
0
0
Ciao Criric,
Intanto grazie mille dell'infinita disponibilità. Ora il form esegue tutti i calcoli precisamente l'unica cosa quando io seleziono gli input radio con nome "Item" e valute rispettivamente A e B deve eseguire due calcoli distinti per la value A ( price * 0.916 * qty) mentre per B ( price * 0.999 * qty) sto provando a lavorarci in base ai preziosi consigli che mi stai dando ma se ha qualcosa da suggerirmi ben venga :D ! se vuoi dare uno sguardo al form: http://dodygold1.altervista.org/csv/PROVA.PHP


Ciao,
molto piu semplice di quello che pensi
HTML:
<script type="text/javascript">
            function processForm() {
                // recuperi il prezzo
                var price = document.getElementById('price').value;
                // recuperi la quantita
                var qta = document.getElementById('qty').value;
                // moltiplichi
                var totale = price * qta;
                // mostri
                document.getElementById('total').value = totale;
            }
        </script>
nella discussione su php nelle note ti ho scritto di usare il punto per facilitare i calcoli

PS: cerca di usare titoli piu specifici per facilitare la ricerca aglialtri utenti
 

ClouDClauS

Nuovo Utente
14 Ago 2012
8
0
0
Risolto creando due pagine separate, avrei bisogno di un ultimo piccolo aiuto per caso ce un modo per far si che il totale fosse mostrato con due decimali effettuando un arrotondamento per eccesso o per difetto?

Ciao Criric,
Intanto grazie mille dell'infinita disponibilità. Ora il form esegue tutti i calcoli precisamente l'unica cosa quando io seleziono gli input radio con nome "Item" e valute rispettivamente A e B deve eseguire due calcoli distinti per la value A ( price * 0.916 * qty) mentre per B ( price * 0.999 * qty) sto provando a lavorarci in base ai preziosi consigli che mi stai dando ma se ha qualcosa da suggerirmi ben venga :D ! se vuoi dare uno sguardo al form: http://dodygold1.altervista.org/csv/PROVA.PHP
 

ClouDClauS

Nuovo Utente
14 Ago 2012
8
0
0

Grazie mille, risolto anche questo!
Sto impazzendo da un paio di giorni su un fattore, vorrei che il totale venga formattato in questo modo 1.000.000,00
Ma su internet le funzioni che ho trovato sbagliano nei decimali, qualcuno di voi ha qualcosa di pronto o qualche idea da consigliarmi ?
Grazie ancora.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ne ho trovata una che simula il number_format() di php a questo indirizzo
Sembra valida
Esempio:
Codice:
<script>
    function number_format (number, decimals, dec_point, thousands_sep) {
        
        number = (number + '').replace(/[^0-9+\-Ee.]/g, '');
        var n = !isFinite(+number) ? 0 : +number,
        prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),        sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
        dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
        s = '',
        toFixedFix = function (n, prec) {
            var k = Math.pow(10, prec);            return '' + Math.round(n * k) / k;
        };
        // Fix for IE parseFloat(0.55).toFixed(0) = 0;
        s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
        if (s[0].length > 3) {        s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);
        }
        if ((s[1] || '').length < prec) {
            s[1] = s[1] || '';
            s[1] += new Array(prec - s[1].length + 1).join('0');    }
        return s.join(dec);
    }
    
    alert(number_format(1000000.56, 2, ',', '.'))
</script>

PS: cambio il titolo della discussione
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
P Calcolare maschera di sottorete Hosting 0
S Magento 2 - Calcolare una tassa con una regola basata su proprietà di prodotto Magento 0
M [PHP] Calcolare costi su modifica orari PHP 4
diego66 [Javascript] Calcolare giorni lavorativi comprese tra due date Javascript 0
H [PHP] Ciclo per calcolare i chilometri PHP 4
A sito responsive - calcolare l'altezza document di 2 php Ajax 4
M [PHP] Calcolare se due intervalli di tempo si sovrappongono PHP 7
M Come calcolare infinite cifre di pigreco PHP 0
V Calcolare la differenza tra due date in PHP PHP 1
M Calcolare differenza temporale tra datetime salvati sui records di una tabella mysql PHP 18
Shyson Calcolare la Pasqua automaticamente Javascript 17
D Ajax per calcolare tempo di permanenza Ajax 14
Web Designer Come calcolare l'I.M.U. online gratuitamente Discussioni Varie 0
voldemort Hosting: come calcolare traffico mensile Hosting 0
G Calcolare la somma Javascript 3
N Calcolare dimensione di un file su un server diverso PHP 4
G Calcolare il valore massimo PHP 15
A calcolare prezzo medio Java 1
A calcolare l'età in automatico Javascript 2
JellyBelly Gmap - calcolare distanza fra due maker Javascript 0
G Calcolare ROI banner di AdSense del sito? Google AdSense 2
metalgemini Calcolare i minuti tra 2 celle di formato "ora" Windows e Software 2
B Calcolare Top e Left in base a Risoluzione Classic ASP 11
L Access calcolare ore e minuti MS Access 3
N Calcolare automaticamente un campo in una maschera Database 2
Shyson [WordPress] [CSS] Formattare casella WordPress 0
Creatt [PHP] Posizionare e formattare testo PHP 13
booklisa [PHP] Input type: number, come formattare un PREZZO? PHP 6
J [HTML] Formattare il tag option HTML e CSS 5
E Formattare un testo in js Javascript 0
N Formattare tabella Immagini PHP 1
M "BOOTMGR is missing" - formattare HD di sistema Windows e Software 2
Shyson Formattare codice Facebook Likes PHP 2
voldemort Formattare campo date HTML e CSS 1
D Formattare Mac Os x avendo perso i DVD Mac e Software 0
Trapano Dopo Ubuntu 64bit non posso più formattare!!!!! Hardware 6
F Formattare variabile PHP 12
asevenx form per formattare testo e inserirlo in databse PHP 1
A Word per Mac 2011: è possibile formattare automaticamente in corsivo tutte le date di un doc.? Mac e Software 2
helpdesk Formattare form Upload HTML e CSS 2
S CSS & PHP: Formattare il testo mostrato da uno script php PHP 75
A Come formattare link dentro un div HTML e CSS 1
M formattare numero come valuta euro con PHP PHP 1
M Formattare testo senza anteprima Javascript 2
P Formattare testo e inserire immagini in text area PHP 4
A Form x formattare del testo Classic ASP 2
B Come formattare il testo di una news caricate sul database? Classic ASP 0
M Formattare testo textarea Javascript 0
G Dreamweaver può formattare il css diversamente? Webdesign e Grafica 1
PoLe Impossibile formattare il PC Hardware 26

Discussioni simili