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

Discussione: Variabili globali

  1. #1

    Variabili globali

    Ciao a tutti,
    come posso dichiarare una variabile globale che prende il valore da un paramentro passato al richiamo di una funzione?
    Praticamente la variabile globale deve stare fuori dalle funzioni, però se richiamo la funzione e passo un valore posso rendere questo valore variabile globale?

    Fatemi sapere.

    Grazie mille.

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    var globale='stringa';
    function funzione(valore){
    globale=valore;
    }

    se non e' questo quello che chiedi spiegati meglio

  3. #3
    Grazie per la risposta.

    Ti mando il codice che ho preso da un blog e che vorrei adattare alle mie esigenze.

    codice:
    <html>
    <head>
    <title></title>
    
    <script type="text/javascript">
    var ore=0;
    var minuti=0;
    var secondi=0;
    var decimi=0;
    var visualizzazione="";
    var contatore_intertempi=0;
    var stop=1;
    
    function avvia()
    {
    if (stop==1)
    {
    stop=0;
    cronometro();
    }
    }
    
    function cronometro()
    {
    if (stop==0) {
    decimi+=1;
    if (decimi>9) {decimi=0;secondi+=1;}
    if (secondi>59) {secondi=0;minuti+=1;}
    if (minuti>59) {minuti=0;ore+=1;}
    
    if (ore<10) {visualizzazione="0" + ore;} else {visualizzazione=ore;}
    if (minuti<10) {visualizzazione=visualizzazione + ":0" + minuti;} else {visualizzazione=visualizzazione + ":" + minuti;}
    if (secondi<10) {visualizzazione=visualizzazione + ":0" + secondi;} else {visualizzazione=visualizzazione + ":" + secondi;}
    visualizzazione=visualizzazione + ":" + decimi;
    
    document.getElementById("mostra_cronometro").value=visualizzazione;
    setTimeout("cronometro()", 100);
    }
    }
    
    </script>
    
    </head>
    <body>
    
    <input id="mostra_cronometro" style="text-align:center;" value="02:00:00:0" onBlur="javascript:avvia();">
    
    <div id="intertempi">
    </div>
    
    </body>
    </html>
    Ecco, questo ha le variabili impostate a zero (ore,minuti,secondi,decimi).

    Io vorrei che quei valori venissero presi da "mostra_cronometro".

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    quindi il problema dov'e'?
    in avvia() prendi il valore di quel campo
    document.getElementById('mostra_cronometro').value

    lo splitti per ":" ottieni quindi un array

    in array[0] hai le ore, fai un parseInt per essere certo di avere un numero
    poi lo setti come ore
    ore= tuovaloreOre;
    e la variabile globale ore contiene quel valore

    infine richiamerai cronometro()

    ciao

  5. #5
    Ok, ora molto più chiaro.

    Però non prende i valori allo stesso modo di come li prende se li dichiamo manualmente.

    Ti posto un esempio che da un problema.
    Praticamente il cronometro dovrebbe partire da 00:00:08:1 così come ho impostato il valore dentro mostra_cronometro.

    Invece parte da 00:01:00:00

    Se i valori li imposto manualmente nella variabili senza richiamare e fare split va tutto bene.

    Spero di essere stato chiaro.

    Dai un occhiata al codice:
    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>Cronometro_javascript</title>
    
    <script type="text/javascript">
    var ore;
    var minuti;
    var secondi;
    var decimi;
    var visualizzazione="";
    var contatore_intertempi=0;
    var stop=1; //0=attivo 1=fermo
    
    function avvia(valore)
    {
    campodaseparare = valore.value;
    n=campodaseparare.split(":"); 
    
    ore=n[0];
    minuti=n[1];
    secondi=n[2];
    decimi=n[3];
    
    
    if (stop==1)
    {
    stop=0;
    cronometro();
    }
    }
    
    function cronometro()
    {
    if (stop==0) {
    decimi+=1;
    if (decimi>9) {decimi=0;secondi+=1;}
    if (secondi>59) {secondi=0;minuti+=1;}
    if (minuti>59) {minuti=0;ore+=1;}
    
    if (ore<10) {visualizzazione="0" + ore;} else {visualizzazione=ore;}
    if (minuti<10) {visualizzazione=visualizzazione + ":0" + minuti;} else {visualizzazione=visualizzazione + ":" + minuti;}
    if (secondi<10) {visualizzazione=visualizzazione + ":0" + secondi;} else {visualizzazione=visualizzazione + ":" + secondi;}
    visualizzazione=visualizzazione + ":" + decimi;
    
    document.getElementById("mostra_cronometro").value=visualizzazione;
    setTimeout("cronometro()", 100);
    }
    }
    
    </script>
    
    </head>
    <body>
    
    <input id="mostra_cronometro" style="text-align:center;" value="00:00:08:1" onBlur="javascript:avvia(this);">
    
    <div id="intertempi">
    </div>
    
    </body>
    </html>

  6. #6
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    Originariamente inviato da Xinod
    fai un parseInt per essere certo di avere un numero
    ciao

  7. #7
    Ho provato già prima così:
    codice:
    ore=parseInt(n[0]);
    minuti=parseInt(n[1]);
    secondi=parseInt(n[2]);
    decimi=parseInt(n[3]);
    Ma parte tutto da zero.

  8. #8
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    specifica la base
    parseInt(n[0],10)

  9. #9
    Grazieeeeeeeee ora è perfetto!!

    Sicuramente scriverò di nuovo per altri problemi

  10. #10
    torno subito... sempre legato a questo.

    come posso fare per avere una differenza di orari in formato ore:min:sec?

    Es:
    16:05:18 - 13:05:10
    Risultato: 03:00:08

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.