Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: Calcolare un totale

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    51

    Calcolare un totale

    Sto facendo un menu per un ristorante;
    il menu è composto di varie voci "antipasti", "primi" ...
    per ogni voce ho una <select>:

    <select size="4" name="ANTIPASTI">
    <option value="10">Salame<option>
    <option value="20">Prosciutto<option>
    ...
    </select>

    Vorrei calcolare il totale complessivo, cioe' primo piatto scelto + Secondo piatto scelto + ...e moltiplicare tutto per il numero di persone invitate a questo pranzo.

    Quando clicco il pulsante per il totale viene richiamata una funzione
    "Calcola"
    Penso che vada scritto in questo modo
    ma non va


    function Calcola(){
    with (document.NomeForm){
    Totale.value = (primo.value + secondo.value + ...+ vino.value)* Persone.value;
    }

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    I campi del form sono di tipo stringa, l'operatore + li concatena ma l'operatore * genera errore... quindi li devi trasformare in tipo numerico:

    Totale.value = (parseFloat("0"+primo.value) + secondo.value + ... + ...) * parseFloat("0"+Persone.value);

    Attenzione anche ai nomi dei campi: js e' case-sensitive pertanto ANTIPASTI e' diverso da Antipasti.

    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

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    51
    Vorrei chiedere se è giusto in questo modo perchè non funziona

    <script>
    //funzione per il calcolo del totale
    function calcola(){
    with (document.FormMenu){
    Totale.value = (parseFloat("0"+ANTIPASTI.value) + PRIMI.value + SECONDI.value) * parseFloat("0"+INVITATI.value);
    }
    }
    </script>

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    :quipy: parseFloat() lo devi applicare a tutti i campi del form coinvolti in calcoli matematici

    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

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    51
    Ho applicato il parseFloat ai dati numerici, ma non va lo stesso

    <script>
    //funzione per il calcolo del totale
    function calcola(){
    with (document.FormMenu){
    Totale.value = (parseFloat("0"+ANTIPASTI.value) + parseFloat("0"+PRIMI.value) + parseFloat("0"+SECONDI.value)) * parseFloat("0"+INVITATI.value);
    }
    }
    </script>

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Attenzione ai campi select!!!!

    Per avere il valore di un select, devi usare questa sintassi:

    var ss = document.NOMEFORM.NOMESELECT;
    var val = ss.options[ss.selectedIndex].value;
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    51

    Problema per inserire le var

    Non so come mettere le variabili
    dentro la funzione Calcola()


    Totale.value = (parseFloat("0"+antipasti) ....?

    <html>

    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <title>Nuova pagina 2</title>
    <meta name="Microsoft Border" content="tb, default">
    </head>
    <script>
    var antipasti = document.FormMenu.ANTIPASTI;
    var valAntipasti = antipasti.options[antipasti.selectedIndex].value;

    var primi = document.FormMenu.PRIMI;
    var valPrimi = primi.options[PRIMI.selectedIndex].value;

    var secondi = document.FormMenu.SECONDI;
    var valSecondi = secondi.options[SECONDI.selectedIndex].value;

    var invitati = document.FormMenu.INVITATI;
    var valInvitati = invitati.options[INVITATI.selectedIndex].value;

    //funzione per il calcolo del totale
    function calcola(){
    with (document.FormMenu){
    Totale.value = (parseFloat("0"+ANTIPASTI.value) + parseFloat("0"+PRIMI.value) + parseFloat("0"+SECONDI.value)) * parseFloat("0"+INVITATI.value);
    }
    }
    </script>


    <body>
    <hr>
    <form name="FormMenu">
    <div align="center">
    <table width="95%">
    <tr>
    <td width="208" align="center"><font face="Tahoma" size="2" color="#000080">Antipasti</font></td>
    <td width="186" align="center"><font face="Tahoma" size="2" color="#000080">Primi</font></td>
    <td width="146" align="center"><font face="Tahoma" size="2" color="#000080">Secondi</font></td>
    </tr>
    <tr>
    <td width="208" align="center"><font face="Tahoma" size="2">

    <select size="4" name="ANTIPASTI" style="font-family: Arial; font-size: 10 pt; color: #000080" tabindex="3" multiple>
    <option value="5">misti di salumi e di mare</option>
    <option value="5">MISTI DI SALUMI</option>
    </select>
    </font></td>
    <td width="186" align="center"><font face="Tahoma" size="2">

    <select size="4" name="PRIMI" style="font-family: Arial; font-size: 10 pt; color: #000080" tabindex="3" multiple>
    <option value="5">CARNE</option>
    <option value="5">Crespelle alla valdostana</option>
    </select>
    </font></td>
    <td width="146" align="center"><font face="Tahoma" size="2">

    <select size="4" name="SECONDI" style="font-family: Arial; font-size: 10 pt; color: #000080" tabindex="3" multiple>
    <option value="5">CARNE</option>
    <option value="5">Filetto al raggio di sole</option>
    </select>

    </font></td>
    </tr>
    </table>
    <div align="center" style="width: 742; height: 263">

    <table width="95%">
    <tr>
    <td width="208" align="center"><font face="Tahoma" size="2" color="#000080">Contorni</font></td>
    <td width="186" align="center"><font face="Tahoma" size="2" color="#000080">Dolci
    e formaggi
    </font></td>
    <td width="146" align="center"><font face="Tahoma" size="2" color="#000080">Torta</font></td>
    <td width="152" align="center"><font face="Tahoma" size="2" color="#000080">Vini</font></td>
    </tr>
    <tr>
    <td width="208" align="center"><font face="Tahoma" size="2">

    <select size="3" name="CONTORNI" style="font-family: Arial; font-size: 10 pt; color: #000080" tabindex="3" multiple>
    <option value="5">Patate all'agro</option>
    <option value="5">Verdure ai ferri</option>
    </select>
    </font></td>
    <td width="186" align="center"><font face="Tahoma" size="2">

    <select size="3" name="DOLCI_E_FORMAGGI" style="font-family: Arial; font-size: 10 pt; color: #000080" tabindex="3" multiple>
    <option value="5">Formaggi misti</option>
    <option value="5">frutti di bosco con gelato</option>
    </select>
    </font></td>
    <td width="146" align="center"><font face="Tahoma" size="2">

    <select size="3" name="TORTA" style="font-family: Arial; font-size: 10 pt; color: #000080" tabindex="3" multiple>
    <option value="5">Saint'honorè </option>
    <option value="5">della casa</option>
    </select>
    </font></td>
    <td width="152" align="center"><font face="Tahoma" size="2">
    <select size="3" name="VINI" style="font-family: Arial; font-size: 10 pt; color: #000080" tabindex="3" multiple>
    <option value="5">Bianco Lugana </option>
    <option value="5">Rosso del Garda</option>
    </select>
    </font></td>
    </tr>
    </table>
    <div align="center">
    <table>
    <tr>
    <td>
    <p align="center"><font face="Tahoma" size="2" color="#000099">Invitati</font>
    </td>
    </tr>
    <tr>
    <td>

    <font face="Tahoma" size="2"><select size="3" name="INVITATI" style="font-family: Arial; font-size: 10 pt; color: #000080" tabindex="4" multiple>
    <option value="50">fino a 50</option>
    <option value="70">da 50 a 70</option>
    <option value="90">da 70 a 90</option>
    <option value="110">da 90 a 110</option>
    <option value="130">da 110 a 130</option>
    <option value="150">da 130 a 150</option>
    <option value="200">da 150 a 200</option>
    <option value="250">da 200 a 250</option>
    <option value="300">da 250 a 300</option>
    <option value="500">oltre 300</option>
    </select>
    </font>
    </td>
    </tr>
    </table>
    </div>



    Per il vostro pranzo è prevista una spesa di
    <input type="text" name="Totale" size="15">


    <input type="button" value="Totale" name="calcola" ONCLICK="Calcola()">



    </div>
    </form>


    </div>
    </body>

    </html>

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    51
    Dentro la funzione Calcola()
    Ho sostituito ad es. ANTIPASTI.value con valAntipasti

    Totale.value = (parseFloat("0"+valAntipasti) ....)

    Ma non funziona
    mi dice che document.FormMenu.ANTIPASTI non è un oggetto o che è vuoto!

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    51
    Forse l'errore si trova in queste riche:
    <script>
    var antipasti = document.FormMenu.ANTIPASTI;

    //e poi dentro la function calcola() ho questo:

    with(document.FormMenu)

    </script>

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    51
    Nessuna risposta...(?)

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.