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

Discussione: somma in ciclo for

  1. #1

    somma in ciclo for

    Ciao a tutti, come da titolo ho problema sulla somma

    ho 25 campi di testo sullo stage istanziati v_1,v_2,v_3 ...v_25
    un campo di testo istanziato 'crediti'
    cosa voglio ottenre : cliccare sul campo di testo crediti e in esso mi deve apparire la somma
    dei valori presenti nei 25 campi v_1,v_2 ecc senza doverli scrivere tutti e 25 !!!

    quindi scrivo:
    codice:
    crediti.onSetFocus = function() {
     for (var z:Number=1; z<=25 ; z++){
     crediti.text += Number(_root["v_"+z].text)
    // ma concatena al posto di sommare!!!!
    
    //se al posto di questa metto:
    // crediti.text =Number(v_1.text)+Number(v_2.text)+Number(v_3.text)+...+Number(v_25.text)
    //ottengo la somma corretta
    }
    }
    il problema lo risolvo scrivendo la somma per esteso, ma vorrei evitarlo....
    -Nextart.it Graphic Solutions

  2. #2
    Moderatrice di CSS L'avatar di ResianTaxidrive
    Registrato dal
    Oct 2007
    residenza
    Udine
    Messaggi
    2,766
    ma non puoi usare un campo testo come se fosse un numero!!

    Scrivi :
    somma += Number(_root["v_"+z].text)

    e alla fine dell'iterazione metti crediti.text= somma;

  3. #3
    lo so, e avevo gia' messo come dici tu: ma la risposta e' NaN!!!
    mettendo trace(somma) ottengo
    Nan ripetuto 25 volte.....

    e' proprio questa la stranezza!!!
    -Nextart.it Graphic Solutions

  4. #4
    Moderatrice di CSS L'avatar di ResianTaxidrive
    Registrato dal
    Oct 2007
    residenza
    Udine
    Messaggi
    2,766
    prova a dichiarare la variabile somma come Number

    e un'altra cosa, togli il :Number di z:Number e vedi se cambia qualcosa.

  5. #5
    nulla!!!
    ricapitolo il codice che utilizzo:


    codice:
    stop();
    nome.text=_root.squadra
    //richiamo alla pagina asp
    myText = new LoadVars();
    myText.onLoad = function(success) {
    	if (success) {
    	car.text="caricato"
    for (var i= 1; i <= 25; i++) {
    		car.text="sono nel ciclo"
    _root["g"+i].text = myText["g"+i];
    _root["v"+i].text = myText["v"+i];
    _root["g_"+i].text = myText["g_"+i];
    _root["v_"+i].text = myText["v_"+i];
    } 
    for (var z= 1; z <= 25; z++) {
    	var somma:Number;
    	somma = Number(_root["v_"+z].text)
    	trace(somma)
    	crediti.text +=(somma)
    	}
    
    car.text= "perfetto"
    	}else {
    		trace("Errore!!!")
    	}
    };
    //myText.load("visualizza_form.asp?nome="+_root.squadra);
    myText.load("vis.txt");
    sostituendo l'istruzione
    codice:
    for (var z= 1; z <= 25; z++) {
    	var somma:Number;
    	somma = Number(_root["v_"+z].text)
    	trace(somma)
    	crediti.text +=(somma)
    	}
    CON QUESTA
    codice:
    crediti.text =300-( Number(v_1.text) + Number(v_2.text) + Number(v_3.text) + Number(v_4.text) + Number(v_5.text) + Number(v_6.text) + Number(v_7.text) + Number(v_8.text) + Number(v_9.text) + Number(v_10.text) + Number(v_11.text) + Number(v_12.text) + Number(v_13.text) + Number(v_14.text) + Number(v_15.text) + Number(v_16.text) + Number(v_17.text) + Number(v_18.text) + Number(v_19.text) + Number(v_20.text) + Number(v_21.text) + Number(v_22.text) + Number(v_23.text) + Number(v_24.text) + Number(v_25.text))
    
    FUNGE TUTTO CORRETTAMENTE!!!!

    -Nextart.it Graphic Solutions

  6. #6
    Moderatrice di CSS L'avatar di ResianTaxidrive
    Registrato dal
    Oct 2007
    residenza
    Udine
    Messaggi
    2,766
    no così che è come prima, ti avevo scritto un'altra cosa. Ricapitolando:

    var somma:Number;
    for (var z= 1; z <= 25; z++) {
    somma += Number(_root["v_"+z].text)
    trace(somma)
    }
    crediti.text =somma

    adesso provo anche io

  7. #7
    COSI' TRACE (SOMMA) mi da' 25 volte Nan e di conseguenza in credioti.text ho Nan!!

    tu?
    -Nextart.it Graphic Solutions

  8. #8
    Moderatrice di CSS L'avatar di ResianTaxidrive
    Registrato dal
    Oct 2007
    residenza
    Udine
    Messaggi
    2,766
    Ecco, inizializza somma = 0 all'inizio.

  9. #9
    anche cosi' trace(somma)= Nan

    mentre se tolgo il + da qui

    somma += Number(_root["v_"+z].text)

    somma = Number(_root["v_"+z].text)

    trace(somma) mi da gli effettivi valori che sono presenti nelle celle, e come ovvio NON MI FA LA SOMMA.
    -Nextart.it Graphic Solutions

  10. #10
    Moderatrice di CSS L'avatar di ResianTaxidrive
    Registrato dal
    Oct 2007
    residenza
    Udine
    Messaggi
    2,766
    a me pur funziona:

    var somma:Number;
    somma=0;
    for (var z= 1; z <= 3; z++) {
    somma += Number(_root["v_"+z].text)
    }
    crediti.text =somma

    mi viene la somma corretta.

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.