Droplist con oggetto a comparsa

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao,

io proverei con un ciclo tipo questo:

Codice:
<script type="text/javascript">
            
            function getSelected(select) {
                return select.options[select.selectedIndex].value;
            }
            function selectValue() {               
                var totale = 0;  
                // al posto di 5 metterai il numero di select // occhio al nome          
                for(var i = 1;i<5;i++) {
                    var somma = getSelected(document.getElementById("select" + i));
                    var totale = parseInt(totale) + parseInt(somma);
                }
                //alert(totale);
                document.getElementById("txtRisultato").value = somma;
            }
            
        </script>
guarda che non ho testato quindi probabilmente è da ritoccare ma sicuramente è piu ordinato
 

GI89

Utente Attivo
21 Apr 2012
36
0
0
Allora sei sicuro che esistano tutti gli id che vengono ricavati?

Sicuro.


io proverei con un ciclo tipo questo:

Codice:

<script type="text/javascript">

function getSelected(select) {
return select.options[select.selectedIndex].value;
}
function selectValue() {
var totale = 0;
// al posto di 5 metterai il numero di select // occhio al nome
for(var i = 1;i<5;i++) {
var somma = getSelected(document.getElementById("select" + i));
var totale = parseInt(totale) + parseInt(somma);
}
//alert(totale);
document.getElementById("txtRisultato").value = somma;
}

</script>

guarda che non ho testato quindi probabilmente è da ritoccare ma sicuramente è piu ordinato
grazie criric,sempre gentilissimo,comunquel'id del totale è sempre <input type='text' size='25' value='' id='txtRisultato' /> giusto? Perchè in tal caso lo script non calcola(ho anche inserito i<17 perchè i select della somma sono 17) :crying: questa pagina mi sta facendo impazzire >.<
 

GI89

Utente Attivo
21 Apr 2012
36
0
0
Ho risolto utilizzando lo script precedente,ho dovuto modificare solo alcuni parametri nel javascript perchè non era compatibile con alcunhi browser,ecco perchè nell'anteprima funzionava e nel browser no
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Prima di "select id='select11'" nel codice c'è un errore di sintassi HTML

correggilo poi il ciclo funziona:

Codice:
<script type="text/javascript">
            
            function getSelected(select) {
                return select.options[select.selectedIndex].value;
            }
            function selectValue() {               
                var totale = 0;            
                for(var i = 1;i<17;i++) {
                    // alert("select" + i + " " + document.getElementById("select" + i).value);
                    var somma = getSelected(document.getElementById("select" + i));
                    var totale = parseInt(totale) + parseInt(somma);
                }
                //alert(totale);
                document.getElementById("txtRisultato").value = totale;
            }
            
        </script>
EDIT : non avevo visto il tuo messaggio :)

ho dimenticato di commentare un alert ( che mi è servito per trovare l'errore)
 
Ultima modifica:

GI89

Utente Attivo
21 Apr 2012
36
0
0
Prima di "select id='select11'" nel codice c'è un errore di sintassi HTML

correggilo poi il ciclo funziona:

Codice:
<script type="text/javascript">
            
            function getSelected(select) {
                return select.options[select.selectedIndex].value;
            }
            function selectValue() {               
                var totale = 0;            
                for(var i = 1;i<17;i++) {
                    // alert("select" + i + " " + document.getElementById("select" + i).value);
                    var somma = getSelected(document.getElementById("select" + i));
                    var totale = parseInt(totale) + parseInt(somma);
                }
                //alert(totale);
                document.getElementById("txtRisultato").value = totale;
            }
            
        </script>
EDIT : non avevo visto il tuo messaggio :)

ho dimenticato di commentare un alert ( che mi è servito per trovare l'errore)
Ho usato il metodo senza ciclo, pero' si scontra con l'altro risultato di contenuto 2.
Nemmeno inserendo
HTML:
{ document.getElementById("txtRisultato2").value = parseInt(document.getElementById("select18").value) + parseInt(document.getElementById("select19").value) + parseInt(document.getElementById("select20").value);
      }
Mmmh :book:
 

GI89

Utente Attivo
21 Apr 2012
36
0
0
Ho usato il metodo senza ciclo, pero' si scontra con l'altro risultato di contenuto 2.
Nemmeno inserendo
HTML:
{ document.getElementById("txtRisultato2").value = parseInt(document.getElementById("select18").value) + parseInt(document.getElementById("select19").value) + parseInt(document.getElementById("select20").value);
      }
Mmmh :book:
Che stupido XD ho risolto utilizzando la stessa funzione