• User Newbie

    countdown in alert

    Salve a tutti..
    ho sempre usato php e javascript ma davanti a questa cosa ho fatto un secondo dietrofront perchè non so proprio come comportarmi.

    Ho bisogno che al click di un submit o link o input image (è uguale) si apra una alert con un countdown che consenta il click sul tasto annulla ma non il click "completa" che si attiva solo dopo che il countdown è ultimato.

    Ovviamente ho grossi problemi...
    Se potete consigliare anche metodi alternativi (es. apertura popup ) sarei lieto di leggerli.

    A presto


  • User Attivo

    Ciao Quision, e benvenuto nel ForumGT!

    Allora, l'allert semplice non è possibile da utilizzare, quindi quello che ti serve è una apertura di un div con dentro il contenuto che ti serve.

    Abbiamo già trattato una funzione simile su un'altro post, e utilizzando quella funzione come base potresti riuscire facilmente a implementare quel che ti serve!

    Il procedimento è lo stesso, il contorno è da completare...


  • User Newbie

    Ti ringrazio molto per la segnalazione.
    Provo a realizzare qualcosa ed eventualmente posto il risultato o il problemi 🙂


  • User Newbie

    dopo un pò di sbattimenti è venuto fuori questo 🙂
    ma ho un sacco di problemi

    </head>
    <body>
    <? include("config.php");
    $sql_durata = "SELECT durata FROM exercise WHERE id_sport = '7'";
    $result_durata = mysql_query($sql_durata) or die(mysql_error());
    while($array_durata = mysql_fetch_array($result_durata)){?>
    <script language="Javascript">
    var countdown;
    var countdown_number;
    var secondi = 0;
    var minuti = <? echo $array_durata['durata']; ?>;
    var const_minuti = <? echo $array_durata['durata']; ?>;
    var ore = 0;

        function countdown_init() {
            countdown_reset();
            countdown_trigger();
            document.getElementById("start").disabled = true;
        }
    
        function countdown_trigger() {
            if(countdown_number == 0 && secondi == 0 && minuti == 0 && ore == 0){
                clearTimeout(countdown);
                secondi = 0;
                minuti = 0;
                alert("Fine esercizio!");
            }
            else{
                if(countdown_number == 0) {
                    if(secondi<= 0){
                        secondi = 60;
                        minuti--;
                    }
                    if(secondi >0){
                        secondi--;
                    }
                    countdown_number = 10;
                }
    
                
                if(countdown_number > 0) {
                    countdown_number--;
                    if(countdown_number >= 0) {
                        countdown = setTimeout('countdown_trigger()', 100);
                    }
                }
                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 + ":" + countdown_number;
                
                document.getElementById("mostra_cronometro").value=visualizzazione;
            }
        }
    
    
    
        function countdown_clear() {
            clearTimeout(countdown);
            countdown_reset();
            secondi = 0;
            minuti = const_minuti;
            document.getElementById("start").disabled = false;
            
        }
        function countdown_reset(){
                countdown_number = 0;
                secondi = 0;
                minuti = const_minuti;
                if(const_minuti < 10){
                    document.getElementById("mostra_cronometro").value="00:0"+const_minuti+":00:0";
                }else{
                    document.getElementById("mostra_cronometro").value="00:"+const_minuti+":00:0";
                }
        }
    
        </script>
        <input id="mostra_cronometro" style="text-align:center;" value="00:<? echo $array_durata['durata']; ?>:00:0" disabled="disabled" />
        <div>
            <input type="button" id="start" value="Start" onclick="countdown_init()" />
            <input type="button" id="stop" value="Stop" onclick="countdown_clear()" />
        </div> 
    

    <? }?>
    </body>
    </html>

    puoi aiutarmi a modificarlo?
    dovrei togliere le variabili globali in modo da passare il valore durata tramite parametro delle funzione...ma va in pappa tutto


  • User Attivo

    Sai più o meno dove si sconquassa il codice?!
    Così partiamo da li e lo sistemiamo...