Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Somma con più checkbox

    ciao ragazzi...

    avete una dritta per fare un preventivo con voci cliccabili che alla fine mi danno un totale?

    la lista voci la aggiornerò tramite database in ASP o PHP

    di ajax ancora ci mastico poco...

    avevo pensato al puro javascript... per evitare i ricaricamenteo della pagina..

    voi cosa mi consigliate?

    :master:

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Non ti toglie di dover fare il controllo lato server di nuovo (per motivi di sicurezza)... comunque, questo potrebbe essere un'inizio/spunto.

    codice:
    <html>
    <head>
    <script language="javascript">
    function calcolaTotale(c) {
      var allChecks = document.testform.elements[c.name];
      var tot = 0;
      for (var i = 0; i < allChecks.length; i++) {
        tot += (allChecks[i].checked ? parseFloat(allChecks[i].value) : 0);
      }
      document.testform.totale.value = tot+"€";
    }
    </script>
    </head>
    <body>
    <form name="testform">
      <input type="checkbox" name="costo[]" value="10" onclick="calcolaTotale(this);" />10€
    
      <input type="checkbox" name="costo[]" value="15" onclick="calcolaTotale(this);" />15€
    
      <input type="checkbox" name="costo[]" value="8" onclick="calcolaTotale(this);" />8€
    
      <input type="checkbox" name="costo[]" value="30" onclick="calcolaTotale(this);" />30€
    
      <input type="checkbox" name="costo[]" value="20" onclick="calcolaTotale(this);" />20€
    
      <input type="checkbox" name="costo[]" value="10" onclick="calcolaTotale(this);" />10€
    
      <input type="checkbox" name="costo[]" value="11" onclick="calcolaTotale(this);" />11€
    
      Totale: <input type="text" name="totale" readonly />
    </form>
    </body>
    </html>
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    azz...

    pensavo fosse più complicato... ( asino inside )

    GRAZIE... PROVO

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    nah, niente di complicato... se i valori ce li hai già al posto giusto.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    si è perfetto...

    perchè poi creo la lista check con un recordes ed è fatta....

    ora cerco come stampare il valore del totale senza usare il campo input ed è fatta...

    per ora...

    GRAZIE ANCORA...

    ps:sai qualche guida da leggere ottima per il javascript?

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Per "stampare" dentro ad uno span o div di tuo gradimento, puoi semplicemente modificare l'ultima riga della function con
    codice:
    document.getElementById('id_span').innerHTML = tot+"€";
    Per quanto riguarda le guide... seguirei i percorsi didattici di questo stesso sito (dalla tab "Siti" segui per "Javascript"), in caso google per argomenti specifici (o lo stesso forum) della cui trattazione non sei rimasto soddisfatto.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    si avevo già fatto per l'html.....

    grazie...

    però ora mi trovo in difficoltà per quanto riguarda un valore di default...

    non mi prende il valore se al tuo script metto

    invece di var tot = 0... var tot = 10000

    ho provato pure a creare un input hidden con il valore ( che gli passerei tramite ASP da un'altra pagina ) con l'attributo selected..

    ma forse devo richiamare la funzione nel body?

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    posta tutto che vediamo
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  9. #9
    buongiorno, stavo cercando una cosa del genere, però questo codice mi limita su una cosa, siccome devo aggiungere il value su un database, per poter inserire il dato ho bisogno che name sia diverso per ogni checkbox è possibile invece di sfruttare name, sfruttasse id?

  10. #10
    io, ho un codice che sfrutta sempre name, ovviamente cosi non funziona perche name è diverso l'uno da l'altro, ma se metto name="product" funziona benissimo, vorrei che invece di usare name="product" usasse id="product"

    codice:
    <tr>
                <td>Cuscino</td>
                <td><input type="checkbox" name="check_cs" id="product" value="100" onclick="p_fioric()"> <textarea rows="2" name="cuscino" cols="50"></textarea><br>
                <font size="2">Inserire dettagli e scritta per la fascia</font></td>
                <td></td>
                <td>Copricassa</td>
                <td><input type="checkbox" name="check_cp" id="product" value="200" onclick="p_fioric()"> <textarea rows="2" name="copric" cols="50"></textarea><br>
                <font size="2">Inserire dettagli e scritta per la fascia</font></td>
            </tr>
            <tr>
                <td>Cesti</td>
                <td><input type="checkbox" name="check_cc" id="product" value="90" onclick="p_fioric()"> <textarea rows="2" name="cesti" cols="50"></textarea><br>
                <font size="2">Inserire dettagli e scritta per la fascia</font></td>
                <td></td>
                <td>Composizioni</td>
                <td><input type="checkbox" name="check_comp" id="product" value="70" onclick="p_fioric()"> <textarea rows="2" name="composizioni" cols="50"></textarea><br>
                <font size="2">Inserire dettagli e scritta per la fascia</font></td>
            </tr>
    
    
    function p_fioric() {
      var input = document.getElementsByName("product");
      var total = 0;
      for (var i = 0; i < input.length; i++) {
        if (input[i].checked) {
          total += parseFloat(input[i].value);
        }
      }
      document.getElementsByName("p_fiori")[0].value = total;
    }

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.