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

Discussione: Tempi Parziali

  1. #1

    Tempi Parziali

    Ciao a Tutti, ho questo Script di un timer:
    codice:
    <html>
    
    <head>
    <meta name="GENERATOR" content="Microsoft FrontPage 5.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>New Page 1</title>
    
    <FORM NAME="stpw">
    <SCRIPT LANGUAGE="JavaScript">
    
    
    <!-- INIZIO
    var ms = 0;
    var state = 0;
    
    function startstop() {
    if (state == 0) {
    state = 1;
    then = new Date();
    then.setTime(then.getTime() - ms);
    } else {
    state = 0;
    now = new Date();
    ms = now.getTime() - then.getTime();
    document.stpw.time.value = ms;
    document.stpw.time1.value = ms;
    
       }
    }
    
    function swreset() {
    state = 0;
    ms = 0;
    document.stpw.time.value = ms;
    document.stpw.time1.value = ms;
    
    }
    
    function display() {
    setTimeout("display();", 50);
    if (state == 1)  {now = new Date();
    ms = now.getTime() - then.getTime();
    document.stpw.time.value = ms;
    document.stpw.time1.value = ms;
    
       }
       
    
    }
    // FINE -->
    </SCRIPT>
    </head>
    
    <BODY onLoad="display()">
    
    
    <CENTER>
    <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="26%" id="AutoNumber1">
      <tr>
        <td width="36%"><input type="checkbox" name="checkbox" value="checkbox" ></td>
        <td width="64%"><INPUT TYPE="text" Name="time" size="20"></td>
      </tr>
      <tr>
        <td width="36%"><input type="checkbox" name="checkbox1" value="checkbox" ></td>
        <td width="64%"><INPUT TYPE="text" Name="time1" size="20"></td>
      </tr>
      <tr>
        <td width="36%">
    
    <INPUT TYPE="BUTTON" Name="ssbutton" VALUE="Start/Stop" onClick="startstop()"></td>
        <td width="64%">
    <INPUT TYPE="BUTTON" NAME="reset" VALUE="Reset" onClick="swreset()"></td>
      </tr>
    </table>
    </FORM>
    </CENTER>
    
    
    </body>
    
    </html>
    Come si vede ho inserito dei checkbox perchè vorrei tramite la loro attivazione/disattivazione far partire uno e non l'altro timer e viceversa......si può fare?

    Grazie per l'aiuto. Ciao

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ci sono degli errori di HTML.

    Il tag <form> non puo` stare nella head, tanto meno a cavallo tra head e body

    Il checkbox non puo` avere nome "checkbox" (parola riservata)

    Che senso ha dare value="checkbox" ai checkbox?

    Sei sicuro che vuoi usare dei checkbox? Non sarebbe meglio usare dei radio?

    Per testare i checkbox puoi usare:
    if(document.NOMEFORM.NOMECHECKBOX.checked) { ...

    Per testare i radio (supponendo che siano almeno due):
    if(document.NOMEFORM.NOMERADIO[0].checked) { ... // primo
    if(document.NOMEFORM.NOMERADIO[1].checked) { ... // secondo
    ....
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Scusa per gli errori e grazie per l'aiuto.....stò facendo molte "briciole" poi metterò a posto tutto.

    le funzioni if mi sono un pò ostiche...sigh....

    Mi spieghi perchè meglio un radio e non un checkbox?
    E se una volta fatto partire il cronometro lo posso fermare, deselezionare (tramite checkbox) e poi farlo ripartire mentre l'altro cronometro ha continuato senza interruzioni....in pratica avere dei tempi parziali.
    Dimmi solo se si può fare e poi cercherò di farlo io (ari-sigh).....che di javascript sono proprio digiuno.

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Gli "if" sono istruzioni fondamentali in qualsiasi linguaggio di programmazione. Devi impararle per forza.

    Avevo capito che ti serviva un cronometro o l'altro: per questo suggerivo i radio. Se invece sono due cronometri indipendenti allora vanno bene i checkbox

    Tutto quello che dici si puo` fare.
    Pero` ho l'impressione che dovresti cercare di spiegare piu` chiaramente e dettagliatamente: faciliti il compito (a te stesso prima che ad altri).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5

    Prova che ti riprova...

    Ecco quà....dopo tanto provare non ci riesco proprio!!!!

    Vorrei tramite i checkbox abilitare o meno la partenza dei timer.
    Una sequenza possibile sarebbe:
    1) checkbox fleggati - schiaccio start/stop e i timer partono.
    2) schiaccio start/stop e i timer si fermano.
    3) tolgo il flag ad uno dei due e schiaccio start/stop, parte solo quello fleggato e l'altro rimane fermo visualizzando il tempo che aveva incrementato.
    4) schiaccio start/stop e i timer si fermano.
    5) inverto i flag e i timer si comportano al contrario del punto 3.
    6) tolgo i flag da ambedue e i timer non partono....
    7) metto i flag ad ambedue e i timer partono....
    Questo il codice:
    codice:
    <head>
    
    <FORM NAME="stpw">
    <SCRIPT LANGUAGE="JavaScript">
    
    
    <!-- INIZIO
    var ms = 0;
    var state = 0;
    
    
    function startstop() {
    if (state == 0) {
    state = 1;
    then = new Date();
    then.setTime(then.getTime() - ms);
    } else {
    state = 0;
    now = new Date();
    ms = now.getTime() - then.getTime();
    document.stpw.time.value = ms;
    document.stpw.time1.value = ms;
    
       }
    }
    
    function swreset() {
    state = 0;
    ms = 0;
    document.stpw.time.value = ms;
    document.stpw.time1.value = ms;
    
    }
    
    function display() {
    setTimeout("display();", 50);
    if (state == 1)  {now = new Date();
    ms = now.getTime() - then.getTime();
    document.stpw.time.value = ms;
    document.stpw.time1.value = ms;
    
       }
       
    
    }
    // FINE -->
    </SCRIPT>
    </head>
    
    <BODY onLoad="display()">
    
    
    <CENTER>
    <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="26%" id="AutoNumber1">
      <tr>
        <td width="36%"><input type="checkbox" name="pippo" value="1" ></td>
        <td width="64%"><INPUT TYPE="text" Name="time" size="20"></td>
      </tr>
      <tr>
        <td width="36%"><input type="checkbox" name="pluto" value="1" ></td>
        <td width="64%"><INPUT TYPE="text" Name="time1" size="20"></td>
      </tr>
      <tr>
        <td width="36%">
    
    <INPUT TYPE="BUTTON" Name="ssbutton" VALUE="Start/Stop" onClick="startstop()"></td>
        <td width="64%">
    <INPUT TYPE="BUTTON" NAME="reset" VALUE="Reset" onClick="swreset()"></td>
      </tr>
    </table>
    </FORM>
    </CENTER>
    </body>
    Vi prego datemi una mano.....il progetto consisterebbe nel registrare i tempi di gioco di giocatori di pallacanestro e i flag sono i giocatori in campo.....
    Grazie!!!

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Anzitutto devi curare il codice HTML.

    Un tag <form> dentro la head non ha senso.
    Se per caso stai usando un editor HTML buttalo, e passa all'editing manuale.

    Non capisco la lettura dell'orologio nel tuo script.

    Io farei una cosa diversa. Mi costruirei una base dei tempi, e ad ogni tempo prefissato incrementerei uno o l'altro contatore in base al fatto che siano abilitati o disabilitati.

    codice:
    var on_off = document.NOMEFORM.NOMECHBOX0; // start/stop
    var tempo1 = 0;                            // tempo giocat.
    var tempo2 = 0;
    var abil1 = document.NOMEFORM.NOMECHBOX1;  // in gioco/fuori
    var abil2 = document.NOMEFORM.NOMECHBOX1;
    var gioc1 = document.NOMEFORM.NOMECAMPO1;  // campo display
    var gioc2 = document.NOMEFORM.NOMECAMPO2;
    
    function timebase() {
      if(!on_off.checked) return;
      if(abil1.checked) tempo1 += 0.1;
      if(abil2.checked) tempo2 += 0.1;
      gioc1.value = tempo1;
      gioc2.value = tempo2;
    }
    
    function reset() {
      tempo1 = 0;
      tempo2 = 0;
      gioc1.value = tempo1;
      gioc2.value = tempo2;
    }
    Il tutto va avviato con:
    <body onload="setInterval('timebase()', 100);">

    Nel form ci dovranno essere:
    Un checkbox per start/stop tempo
    Un checkbox per ogni giocatore: in gioco/fuori
    Un campo testo per ogni giocatore (readonly)

    Nota: con il tempo di ripetizione di 0,1 sec, potrebbe avere problemi su qualche computer un po' lento.

    Nota2: se i giocatori sono piu` di due, e` meglio fare routine ricorsive (ed usare vettori invece di varibili singole).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7

    Orpo!!!

    Speravo di arrivare alla meta del mio sentiero....ed invece me ne apri un altro....sigh!!!
    Dunque, come forse hai capito mi occorre una rilevazione dei tempi per singolo giocatore...
    Essendo un team di pallacanestro il numero max per partita è 12....
    I nomi di questi li caricherei da un DB (almeno questo sò farlo) e li selezionerei tramite check box passando l'informazione ad un altra pagina.
    In questa pagina trovo elencati i giocatori (selezionati nella precedente pagina....
    12 campi di timer e 12 checkbox, un unico tasto di start/stop che comanda i dodici campi di timer a seconda del flag sul checkbox e un tasto reset che azzera tutti i campi.
    Come sai i giocatori in campo sono 5 e quindi ci troveremo a fleggare 5 checkbox, facendo start/stop partono i tempi di solo questi cinque....in caso di fermata del tempo farò click su start/stop e i tempi si fermeranno....
    In caso di sostituzione di un giocatore deselezionerò il checkbox del giocatore uscente e selezionerò il checkbox del giocatore entrante...alla ripartenza del tempo (start/stop) ripartiranno i 5 timer fleggati e quello appena deselezionato rimarrà fermo visualizzando il parziale fino a quel punto....
    Sono stato lungo ma mi avevi detto di essere il più chiaro possibile su ciò che volevo....
    Per il codice scusa ancora....sono at work e faccio le cose un pò di fretta....eheheheh

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Riscrivo il mio codice per N giocatori.
    Ancora piu`, occorre fare attenzione se gira su computer vecchi. In tal caso occorre allungare il tempo di richiamo della routine.

    //Suppongo come nomi dei campi:
    //<form name="stpw"> nome del form
    //<input type="checkbox" name="onoff"> start/stop
    //<input type="text" name="tempo_g0"> tempo gioc
    //<input type="checkbox" name="gioca0"> incampo/fuori
    // Nota i valori devono andare da 0 a 11 (per 12 giocatori)

    codice:
    var on_off = document.stpw.onoff;     // start/stop
    var numero = 12;
    var interv = 0.1;                     // per ripetiz. 100 ms
    var tempo = new Array(numero);        // tempo giocat.
    var abil = new Array(numero);         // in gioco/fuori
    var gioc = new Array(numero);         // campo display
    for(var i=0; i<numero; i++) {
      tempo[i] = 0;
      abil[i] = document.stpw.elements['gioca'+i];
      gioc[i] = document.stpw.elements['tempo_g'+i];
    }
    
    
    function timebase() {
      if(!on_off.checked) return;
      for(var i=0; i<numero; i++) {
        if(abil[i].checked) tempo[i] += interv;
        gioc[i].value = tempo[i];
      }
    }
    
    function timereset() {
      for(var i=0; i<numero; i++) {
        tempo[i] = 0;
        gioc[i].value = tempo[i];
      }
    }
    Il reset deve essere chiamato da un bottone:
    <input type="button" onclick="timereset();" value="resetta tutto">
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  9. #9

    quasi quasi

    Dunque per il primo codice è quasi ok e ti ringrazio!!!
    Per il secondo.....quello con le variabili a 12 giocatori mi dice che:

    var on_off = document.stpw.onoff; // start/stop

    document.stpw.onoff è null o non è un oggetto....

    Sicuramente sbaglio io qualcosa!!!

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Forse non c'e` il tag con name="onoff".
    Prova a ricontrollare la sintassi: i nomi definiti in HTML devono essere uguali (identici, comprese maiuscole) a quelli usati poi in JS.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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.