Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    problema abilitazione e disabilitazione TAG dopo countdown da pulsante

    Ciao a tutti il mio problema consiste nel dover abilitare e disabilitare visivamente un TAG html da un menu a cascata, in questo esempio ci sono 2 option 1) Livello1 e 2) Livello2, se si ha i requisiti per avviare livello1 al suo termine, si deve abilitare option Livello2 e se si ha i requisiti avviare anche quello, grazie a tutti per eventuali aiuti.
    CODICE:
    codice HTML:
    <!DOCTYPE html>
    <html>
        <head>
            <title>Conto alla rovescia</title>
            <meta charset="utf-8">
    
            <script>
                function updateTimer(divId,seconds)
                {    
                    document.getElementById('avvia').disabled=true;
                    elem = document.getElementById(divId);
                    elem.style.display = 'none';
                    sec = seconds;
                    if(seconds < 10) {
                        sec = "0" + seconds;
                    }
                    document.getElementById('seconds').innerHTML = "00:00:" + sec;
    
                    if (seconds == 0) {
                        document.getElementById('avvia').disabled=false;
                        elem.style.display = 'block';
                    } else {
                        var count = seconds - 1;
                        setTimeout("updateTimer('" + divId + "'," + count + ")", 1000);
                    }
                }
                // setta conteggio iniziale 
                function setTime(time) {
                    document.getElementById('seconds').innerHTML = "00:00:" + parseInt(time);
                }
                // recupero valore select
                function getSelected(select) {
                    return select.options[select.selectedIndex].value;
                }
                // recupera l'elemento
                function getId(el) {
                    return document.getElementById(el);
                }
                
            </script>
        </head>
    
        <body>
            <div>
    <?php
    // Livello1 e di Default FALSE, deve diventare TRUE solo dopo che il processo del primo TAG option va a termine
    // e quindi successivamente sbloccare il secondo TAG option
    $livello1 = FALSE; 
    $cassa = 1000;
    $opt1 = 100;
    $opt2 = 500;
    ?>
                <select name="secondi" id="secondi" onchange="setTime(getSelected(this))">
                    <?php
                    if($cassa >= $opt1){
                        $cassa = $cassa - $opt1;
                        echo'
                    <option value="2">Livello 1</option>
                        ';
                        $livello1 = TRUE;
                    }
    // Livello 2 deve essere visibile solo se Livello 1 e stato già avviato e portato a termine
    // Livello 1 dopo aver portato a termine il processo deve disabilitarsi e non dovrebbè più essere avviato
                    if($cassa >= $opt2 && $livello1 == TRUE){
                        $cassa = $cassa - $opt2;
                        echo'
                        <option value="4">Livello 2</option>
                        ';
                    }
                    ?>    
                </select>
    
                <input type="button" id="avvia" onclick="updateTimer('foo',getSelected(getId('secondi'))); " value="AVVIA" />
    
                <h1 id="seconds"></h1>
    
                <div id="foo" style="display: none;">
                    <h1>Conto alla rovescia terminato! Livello successivo sbloccato</h1>
                    <h2>Soldi rimanenti in cassa: <?php echo $cassa ?></h2>
    
                </div>
            </div>
        </body>
    </html>

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Sia la spiegazione che il codice non sono molto comprensibili, esattamente cosa dovresti fare e perché?



    P.S. Ricordati per il futuro che posta codice php su questo forum 9 volte su 10 confonde e complica di molto eventuali aiuti
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    modificato con solo codice javascript
    codice HTML:
    <!--
    Vorrei che nel tag <selection> all'inizio sia visibile solo <option>LIVELLO1</option>
    dopo aver fatto il click sul pulsante <input>AVVIA deve partire il countdown se la condizione viene soddisfatta
    e allo stesso tempo dare il valore TRUE a <option>LIVELLO1</option>
    (nel senso che questa cosa e stata fatta e non deve essere più visibile e ripetuta)
    a questo punto deve scomparire il tag <option>LIVELLO1</option>
    e visualizzarsi <option>LIVELLO2</option> se viene soddisfatta la condizione si sblocca il pulsante
    e si avvia di nuovo il countdown alla pressione e cosi via per altri tag che ora non ci sono tipo LIVELLO3, LIVELLO4 ECC ECC....
    -->
    <!DOCTYPE html>
    <html>
        <head>
            <title>Conto alla rovescia</title>
            <meta charset="utf-8">
    
            <script>
                function updateTimer(divId,seconds)
                {    
                    document.getElementById('avvia').disabled=true;
                    elem = document.getElementById(divId);
                    elem.style.display = 'none';
                    sec = seconds;
                    if(seconds < 10) {
                        sec = "0" + seconds;
                    }
                    document.getElementById('seconds').innerHTML = "00:00:" + sec;
    
                    if (seconds == 0) {
                        document.getElementById('avvia').disabled=false;
                        elem.style.display = 'block';
                    } else {
                        var count = seconds - 1;
                        setTimeout("updateTimer('" + divId + "'," + count + ")", 1000);
                    }
                }
                // setta conteggio iniziale 
                function setTime(time) {
                    document.getElementById('seconds').innerHTML = "00:00:" + parseInt(time);
                }
                // recupero valore select
                function getSelected(select) {
                    return select.options[select.selectedIndex].value;
                }
                // recupera l'elemento
                function getId(el) {
                    return document.getElementById(el);
                }
                
            </script>
        </head>
    
        <body>
            <div>
    <script>
    // Livello1 e di Default FALSE, deve diventare TRUE solo dopo che il processo del primo TAG option va a termine
    // e quindi successivamente sbloccare il secondo TAG option
    var livello1 = false; 
    var cassa = 1000;
    var opt1 = 100;
    var opt2 = 500;
    </script>
                <select name="secondi" id="secondi" onchange="setTime(getSelected(this))">
                    <script>
                
                    if(cassa >= opt1){
                        cassa = cassa - opt1;
                        document.write('<option value="2">Livello 1</option>');
                        livello1 = true;
                    }
                    else
                    document.write('non ci sono soldi in cassa');
    // Livello 1 dopo aver portato a termine il processo deve disabilitarsi e non dovrebbè più essere avviato
    // Livello 2 deve essere visibile solo se Livello 1 e stato già avviato e portato a termine
                
                    if(cassa >= opt2 && livello1 == true){
                        var cassa = cassa - opt2;
                        document.write('<option value="4">Livello 2</option>');
                    }
                    else
                    document.write('non ci sono soldi in cassa');
    
                    </script>    
                </select>
    
                <input type="button" id="avvia" onclick="updateTimer('foo',getSelected(getId('secondi')));" value="AVVIA" />
    
                <h1 id="seconds"></h1>
    
                <div id="foo" style="display: none;">
                    <h1>Conto alla rovescia terminato! Livello successivo sbloccato</h1>
                    <h2>Soldi rimanenti in cassa: <script>document.write(cassa)</script></h2>
    
                </div>
            </div>
        </body>
    </html>

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Sempre che abbia capito bene quest'esempio dovrebbe andare bene.

    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    scusa se rispondo in ritardo l'esempio e perfetto e hai capito benissimo cosa intendevo, grazie mille.

Tag per questa discussione

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.