Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    144

    jQuery sommare valori da checkbox

    Salve a tutti,
    Ho una tabella (semplifico la tabella)
    ID, nome, euro
    1, tavolo, 35
    2, sedia, 24
    3, piatto, 12

    nell'html visualizzerò l'elenco di tutti questi dati in tabella con accanto un checkbox,
    dove value è l'ID

    <input type='checkbox' name='articoli[]' value='1' >

    Quello che vorrei fare è che quando viene checkato ci sia un campo di testo dove compaia la somma dei valori checkati. Spero di essere stato chiaro
    Come potrei fare??
    Grazie

  2. #2
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,001
    codice:
    <!DOCTYPE html>
    <html lang="it">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Somma Valori Checkbox</title>
    </head>
    <body>
        <h2>Lista Articoli</h2>
        <table>
            <tr>
                <th>Nome</th>
                <th>Prezzo (€)</th>
                <th>Seleziona</th>
            </tr>
            <tr>
                <td>Tavolo</td>
                <td>35</td>
                <td><input type="checkbox" name="articoli[]" value="35" onchange="calcolaTotale(this)"></td>
            </tr>
            <tr>
                <td>Sedia</td>
                <td>24</td>
                <td><input type="checkbox" name="articoli[]" value="24" onchange="calcolaTotale(this)"></td>
            </tr>
            <tr>
                <td>Piatto</td>
                <td>12</td>
                <td><input type="checkbox" name="articoli[]" value="12" onchange="calcolaTotale(this)"></td>
            </tr>
        </table>
    
        <p>Totale: € <input type="text" id="totale" value="0" readonly></p>
    
        <script>
            // Funzione per calcolare il totale
            function calcolaTotale(checkbox) {
                let totale = parseFloat(document.getElementById('totale').value); // Recupera il totale corrente
                let valore = parseFloat(checkbox.value); // Valore del checkbox selezionato
                
                // Aggiunge o sottrae il valore dal totale in base al checkbox selezionato o deselezionato
                if (checkbox.checked) {
                    totale += valore;
                } else {
                    totale -= valore;
                }
    
                // Aggiorna il campo di testo con il nuovo totale
                document.getElementById('totale').value = totale.toFixed(2);
            }
        </script>
    </body>
    </html>

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    144
    Fico il codice, ma il problema è che poi questi articoli li devo registrare e come value io mi portavo l'ID dell'articolo, così come faccio?

  4. #4
    Crei un array e nell'if checkbox.checked fai un push del valore nell 'array :

    https://jsfiddle.net/tx7gk1cn/1/

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    144
    Ma i valori che mi devo portare dietro sono gli ID ovvero 1, 2 e 3 non il valore in euro

  6. #6
    https://jsfiddle.net/nuL2wogk/2/

    Comunque un pochino prova, vedi l'esempio e provi a modificarlo un pò ... era quasi tutto scritto

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.