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

Discussione: Somma di più select

  1. #1
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494

    Somma di più select

    Salve a tutti,
    dovrei sommare il valore di più select:

    codice HTML:
    <select name="prova[]">
    <option value="1">Single</option>
    <option value="2">Single2</option>
    </select>
    
    <select name="prova[]">
    <option value="3">Single3</option>
    <option value="4">Single4</option>
    </select>
    
    <p><b>Totale:</b>  <span id="results"></span></p>
    Visto che il select è un array, come faccio a sommare i select selezionati?

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Quando dovrebbe accadere? Hai scritto del codice?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    $('select').change(function(){
    // calcolo
    });

  4. #4
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    Sono riuscito a fare questo:

    codice HTML:
    <select name="prova[]">
    <option data-id="1" value="50">Single</option>
    <option data-id="2" value="225">Single2</option>
    </select>
    
    <select name="prova[]">
    <option data-id="1" value="15">Single3</option>
    <option data-id="2" value="35">Single4</option>
    </select>
    
    <span></span>
    
    function sum(x, y) {
         var z = x + y;
        return z;
    }
    function calculate() {
        var prezzo = [];
        var num = [];    
    $('select').each(function ()        {
                 prezzo.push($(this).val());
                 num.push($(this).data('id'));
            });
        $('span').text('Totale: '+ sum(prezzo, num));
    }
    
    calculate();
    
    $('select').change(function() {
     calculate(); 
    });
    Ma non mi calcola il totale

  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Mi sembra che hai molta confusione,
    vuoi un somma delle due select? Perché costruisci un array prezzo? A cosa serve array data-id?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  6. #6
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    Ti spiego ogni select ha come valore il prezzo di ciò che sto selezionando, e su data-id il numero della selezione, ovviamente ho diversi select con gli stessi dati, vorrei mi facesse il calcolo del valore * data-id, e ovviamente il totale di tutti i select.

    Spero di essermi spiegato.

  7. #7
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Ok, non ne capisco il motivo ma avrai le tue ragioni, troppo complesso per la mia pazienza e le mie conoscenze ciao.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  8. #8
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    codice HTML:
    <select class="calcolo" name="prova[]">
    <option data-prezzo="100" value="1">Single</option>
    <option data-prezzo="200" value="2">Single2</option>
    </select>
    
    <select class="calcolo" name="prova[]">
    <option data-prezzo="125" value="1">Single3</option>
    <option data-prezzo="250" value="2">Single4</option>
    </select>
    
    <span class="numero"></span>
    <span class="prezzo"></span>
    
    <script>
    $('select').change(function () {
                var numero = 0;
                var prezzo = 0;
                $('select').each(function () {
                    numero += +$(this).val();
                    prezzo += +$(this).data('prezzo');
                });
                $('.numero').text('Selezionati: '+numero);
                $('.prezzo').text('Prezzo totale: '+prezzo);        
    });
    </script>
    Come mai mi restituisce sempre NaN?

  9. #9
    $(this).data('prezzo') restituirà "undefined" in quanto il data-attribute è settato per le option e non per la select, per questo ti da NaN.

  10. #10
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    E per fare il calcolo dell'attributo data-prezzo come faccio? (come per il value che invece mi da il risultato giusto)

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 © 2024 vBulletin Solutions, Inc. All rights reserved.