Visualizzazione dei risultati da 1 a 7 su 7

Discussione: submit a tempo

  1. #1
    Utente di HTML.it L'avatar di Scream
    Registrato dal
    Apr 2002
    Messaggi
    228

    submit a tempo

    ciao a tutti, vorrei far sì che dopo N minuti un form venga considerato compilato e quindi da spedire.

    è quindi sufficiente un submit automatico dopo questi famosi N minuti. Come lo realizzo?

    Al momento usando php ricavo un po' di dati
    Codice PHP:
    $iniziotest time(); // ricavo la data e l'ora dell'inizio del quiz
    $finetest $iniziotest + (30 60); // ricavo la data e l'ora della fine del quiz (dopo 30 minuti)
    $datafine=date('Y-m-d H:i:s',$finetest); // formatto data e ora nel formato AAAA-MM-GG hh-mm-ss 
    Come intuibile dai commenti il tutto serve per fare un semplice quiz matematico. Alla fine l'utente potrà fare un submit che porterà alla pagina di valutazione, oppure dopo i famosi 30 minuti invierà il test automaticamente alla valutazione.

    sarebbe inoltre utile se ci fosse un modo per far sì che il submit compili un campo "finetest" con data ora (in cui viene premuto il pulsante) in modo da poter avere una sorta di cronometro e dire all'utente, hai compilato il quiz in tot minuti e tot secondi. posso metterlo anche nella pagina di ricezione, ma se a spedire i dati impiega 1 secondo è un secondo che si perde e si falsa il tempo impiegato, di poco, ma si falsa.

  2. #2
    Utente di HTML.it L'avatar di ganesha
    Registrato dal
    Jan 2003
    Messaggi
    357
    mah.. scriverei una funzione che testi l'ora attuale con $datafine; se quest'ultima è superata faccio il submit da codice.

    poi con un setInteval richiamerei quella funzione ogni tot secondi...

  3. #3
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Originariamente inviato da ganesha
    mah.. scriverei una funzione che testi l'ora attuale con $datafine; se quest'ultima è superata faccio il submit da codice.

    poi con un setInteval richiamerei quella funzione ogni tot secondi...
    Non fai prima con un semplice window.setTimeout(mioform.submit, 1800000) dichiarato nell'onload del body?

    Originariamente inviato da Scream
    sarebbe inoltre utile se ci fosse un modo per far sì che il submit compili un campo "finetest" con data ora (in cui viene premuto il pulsante) in modo da poter avere una sorta di cronometro e dire all'utente, hai compilato il quiz in tot minuti e tot secondi. posso metterlo anche nella pagina di ricezione, ma se a spedire i dati impiega 1 secondo è un secondo che si perde e si falsa il tempo impiegato, di poco, ma si falsa.
    Quello lo costruisci con l'evento onsubmit associato al tuo form. Evento che verrebbe richiamato anche in caso di invio automatico.

    Ciao.

  4. #4
    Utente di HTML.it L'avatar di ganesha
    Registrato dal
    Jan 2003
    Messaggi
    357
    utilizzando il mio suggerimento all'interno della funzione di test ci metti quello che vuoi. ad es. potresti visualizzare il tempo rimasto.

    però, certo carlomarx, il tuo metodo è più immediato. ...e non ci avevo pensato

  5. #5
    Utente di HTML.it L'avatar di Scream
    Registrato dal
    Apr 2002
    Messaggi
    228
    Originariamente inviato da carlomarx
    Non fai prima con un semplice window.setTimeout(mioform.submit, 1800000) dichiarato nell'onload del body?
    Dunque con questo:
    codice:
    <body onload="window.setTimeout(mioform.submit, 18000)"> <form id="mioform" name="mioform" method="post" action="concludi.php"><div id="main">....
    non funziona... dopo 18 secondi non accade nulla (l'ho provato a 18 per accelerare i tempo )

    Quello lo costruisci con l'evento onsubmit associato al tuo form. Evento che verrebbe richiamato anche in caso di invio automatico.
    Codice PHP:
    <?php
    echo '    <input type="hidden" value="" name="orasubmit" />'."\n"?><input type="submit" onsubmit="mioform.getElementById(orasubmit).value='<?php time(); ?>';" value="Conferma" />
    È corretto?

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    500
    Allora prima di tutto avrai una funzione che calcola la valutazione che al richiamo onsubmit calcola la valutazione, dopodichè avrai un evento onload che, fa quello che hai scritto te al primo post e setta un timeout, allo scadere del timeout si richiama la funzione valutazione.

    Capito?

  7. #7
    Utente di HTML.it L'avatar di Scream
    Registrato dal
    Apr 2002
    Messaggi
    228
    Niente non ho capito nulla

    per me è arabo. di javascript non ne capisco molto se hai modo di postare un codice preferisco. domani dovrei mostrare questa cosa e sono veramente nella m*** mi manca solo questa cosa.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.