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

Discussione: conto alla rovescia

  1. #1

    conto alla rovescia

    Ciao ragazzi ho questa funzione di redirect collegata ad un form in modo tale che spedisca i dati dopo tot secondi.

    <script language="JavaScript">
    decimi=0;
    max=100 //indica i millisecondi
    function fai() {
    clearTimeout(CronoID);
    document.modulo_simulazione.action = "index.php?key=simulazione&key2=cons";
    document.modulo_simulazione.submit();
    }
    function Crono() {
    decimi++;
    if (decimi==max) {
    fai();
    }
    CronoID = setTimeout("Crono()", 100)
    }
    </script>

    <body onload="onLoad="Crono();">

    Non mi intendo di javascript e vi chiedo come posso mostrare il tempo rimanente come un conto alla rovescia?
    A.
    Dindya

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    nel body aggiungi un div



    tempo trascorso:<span id='tempoRimanente'></span></p>


    modifichi la funzione crono
    Codice PHP:
    function Crono() {
        
    document.getElementById("tempoRimanente").innerHTML max decimi;
        
    decimi++;
        if (
    decimi==max) {
            
    fai();
        }
        
    CronoID setTimeout("Crono()"100);


  3. #3
    Figo!!! grazie!! Bisogna che mi decida a imparare questo benedetto javascript
    Dindya

  4. #4
    Ho dovuto fare questa modifica perchè altrimenti non funzionava
    codice:
    document.getElementById("tempoRimanente").innerHTML = (max-decimi);
    Scusate se rompo ancora , ma se volessi mostrare il tempo mancante sotto forma di secondi anzichè di decimi di secondo come dovrei fare?

    A
    Dindya

  5. #5
    Come non detto

    bastava aggiungere uno zero
    codice:
    CronoID = setTimeout("Crono()", 100)
    per passare dai decimi a secondi
    codice:
    CronoID = setTimeout("Crono()", 1000)
    grazie comunque
    Dindya

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    ...risposta arrivata tardi

  7. #7
    scusa
    Dindya

  8. #8
    Come devo fare per mostrare il tempo rimanente nel formato mm:ss?
    Dindya

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    intanto spero che tu abbia modificato oltre a setTimeout anche max che ora essendo in secondi non è più 100 ma 10.
    Inoltre decimi è un nome fuorviante ora lavori con i secondi

    per il resto devi semplicemente convertire da decimale a sessagesimale il tempo rimanente (max-decimi), in realtà nel tuo caso è ancora più semplice.

    per max = 10 in ogni caso otterrai un numero che va a 10 a 0 secondi quindi il campo minuti resterà sempre "00:"
    mentre per il campo secondi (max-decimi) solo nel caso in cui i secondi che restano siano meno di 10 devi aggiungere come prefisso 0 così da avere i secondi nel formato 'ss'.

    quindi

    Codice PHP:

    secondi
    =0;
    max 10;

    function 
    Crono() {
       var  
    tempoRimanente  max secondi;
        if(
    tempoRimanente 10 tempoRimanente "0"+temporimanente;
        
    tempoRimanente "00:"+tempoRimanente;
        
    document.getElementById("tempoRimanente").innerHTML tempoRimanente;
        
    secondi++;
        if (
    secondi==max) {
            
    fai();
        }
        
    CronoID setTimeout("Crono()"1000);

    Più che imparare javascript vedo che hai problemi a programmare. Infatti al posto di utilizzare un contatore (ex 'decimi' nel codice di ora 'secondi') potresti pensare semplicemente a decrementare max fino a quando non vale 0

    quindi modificando ulteriormente il tutto

    Codice PHP:

    max 
    10;

    function 
    Crono() {
        var  
    tempoRimanente  max;
        if(
    tempoRimanente 10 tempoRimanente "0"+temporimanente.toString();
        
    tempoRimanente "00:"+tempoRimanente;
        
    document.getElementById("tempoRimanente").innerHTML tempoRimanente;
        
    max--;
        if (!
    max) {
            
    fai();
        }
        
    CronoID setTimeout("Crono()"1000);


  10. #10
    intanto spero che tu abbia modificato oltre a setTimeout anche max che ora essendo in secondi non è più 100 ma 10. Inoltre decimi è un nome fuorviante ora lavori con i secondi certo, forse non ho inserito la funzione modifcata.

    per il resto devi semplicemente convertire da decimale a sessagesimale il tempo rimanente (max-decimi), in realtà nel tuo caso è ancora più semplice.

    Il fatto è che non conosco la sintassi di javascript e quindi sto andando a tentativi. Come si fa?

    Ti ringrazio per l'aiuto ma siccome la pagina conterrà un test che deve essere visualizzato per almeno 40 minuti circa, mi è molto utile anche il decremeto dei minuti.

    Lo farei in php ma non voglio caricare il server e poi vorrei che il contatore fosse visibile.

    Dindya

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.