odpočet času (javasriptem) + odeslání formuláře...
- Václav Sedlář
- Žlutá karta Bazar

-
- Registrován: 01. dub 2006
- Bydliště: Liberec
- Kontaktovat uživatele:
odpočet času (javasriptem) + odeslání formuláře...
Ahoj, mám HTML formulář a pod ním tlačítko odeslat a potřeboval bych nějak javascriptem (nemusí to být javasriptem, jakkoliv co nejjednodušeji...jinak dělám stránky v php) udělat odpočet času a když čas dojde na 00:00 (mm:ss), tak aby se jakoby stisklo subbmit tlačítko - prostě aby se odeslal formulář...
Komplikaci je, že se jedná o test, takže na začátku testu se spustí odpočet a i když bude uživatel přepínat mezi otázkami, tak čas musí pořád běžet...takže asi budu muset do formuláře dát dvě skryté pole (input), kde bude uložen celkový čas (v sekundách) a již uplynulý čas (v sekundách)...a js bude muset do toho pole s uplynulým časem pořád zapisovat novou hodnotu...
Nevíte, jak to udělat? A ještě k tomu aby se čas někde ukazoval? Díky moc...
Edit: Ještě mě napadlo a asi by to bylo i lepší, že JS by jen zobrazil odpočet, nic víc, a php nebo něco jinýho (ajax,...) by na pozadí jen odeslal formulář...
Komplikaci je, že se jedná o test, takže na začátku testu se spustí odpočet a i když bude uživatel přepínat mezi otázkami, tak čas musí pořád běžet...takže asi budu muset do formuláře dát dvě skryté pole (input), kde bude uložen celkový čas (v sekundách) a již uplynulý čas (v sekundách)...a js bude muset do toho pole s uplynulým časem pořád zapisovat novou hodnotu...
Nevíte, jak to udělat? A ještě k tomu aby se čas někde ukazoval? Díky moc...
Edit: Ještě mě napadlo a asi by to bylo i lepší, že JS by jen zobrazil odpočet, nic víc, a php nebo něco jinýho (ajax,...) by na pozadí jen odeslal formulář...
- Václav Sedlář
- Žlutá karta Bazar

-
- Registrován: 01. dub 2006
- Bydliště: Liberec
- Kontaktovat uživatele:
Re: odpočet času (javasriptem) + odeslání formuláře...
Tak mám teoretický napád jak to udělat:
ty stránky co dělám, je vlastně takový test...několik otázek a tlačítko "předchozí otázka", "další otázka", tlačítko "ukončit a vyhodnotit"...
Na test třeba 20 minut a odpočet času se musí zobrazit (např. v pravém sloupci)...
A mám takovýto nápad jak to udělat:
Do formuláře s odpovědí dát dva skryté inputy kde budou hodnoty (v sekundách) celkový čas na test a počet uběhlých sekund...
Při spuštění testu se načte celkový čas a uběhlý čas se bude zapisovat pořád do příslušného pole.Při kliku na další otázku se odešle form. a načte další, kde bude předvyplněn celkový čas a uběhnutý čas. JS si oba údaje zase načte, odečte a zase spustí odpočet...
Pak ještě udělat něco jako if(čas==0){odeslat form tlačítkem "ukončit a vyhodnotit"}...
Ale nevím jak to udělat prakticky v tom JS - moc ho neumím...
ty stránky co dělám, je vlastně takový test...několik otázek a tlačítko "předchozí otázka", "další otázka", tlačítko "ukončit a vyhodnotit"...
Na test třeba 20 minut a odpočet času se musí zobrazit (např. v pravém sloupci)...
A mám takovýto nápad jak to udělat:
Do formuláře s odpovědí dát dva skryté inputy kde budou hodnoty (v sekundách) celkový čas na test a počet uběhlých sekund...
Při spuštění testu se načte celkový čas a uběhlý čas se bude zapisovat pořád do příslušného pole.Při kliku na další otázku se odešle form. a načte další, kde bude předvyplněn celkový čas a uběhnutý čas. JS si oba údaje zase načte, odečte a zase spustí odpočet...
Pak ještě udělat něco jako if(čas==0){odeslat form tlačítkem "ukončit a vyhodnotit"}...
Ale nevím jak to udělat prakticky v tom JS - moc ho neumím...
- Václav Sedlář
- Žlutá karta Bazar

-
- Registrován: 01. dub 2006
- Bydliště: Liberec
- Kontaktovat uživatele:
Re: odpočet času (javasriptem) + odeslání formuláře...
Tak jsem na netu našel nějaký časovač, trochu si ho přizpůsobil a funguje...zde je ten časovač: http://webtrh.cz/35598-odpocet-casu-javascriptu
vyřešeno, funguje...
vyřešeno, funguje...
- Airywave
- Nováček

-
- Registrován: 27. bře 2012
Re: odpočet času (javasriptem) + odeslání formuláře...
tohle na programování miluju, člověk si píše/mluví sám se sebou a nakonec na to přijde. Jsem rád že jsem začal studovat matematiku a algoritmy a poté se dostal přes programování k analytice. Tohle člověk nikde jinde nezažije 
- Václav Sedlář
- Žlutá karta Bazar

-
- Registrován: 01. dub 2006
- Bydliště: Liberec
- Kontaktovat uživatele:
Re: odpočet času (javasriptem) + odeslání formuláře...
jj...s JS mám dost problémy a nesnáším ho, takže jsem fakt nevěděl jak to udělat prakticky (teorie byla)...a při čekání na odpověď jsem hledal řešení no...a našel...
- Broxik
- Začátečník

- Registrován: 11. led 2010
Re: odpočet času (javasriptem) + odeslání formuláře...
toz ja mu neco hodil do pm ale napsal sem to obecne aby se trosku potrapil nechtel sem tu v zadnem pripade davat hotove reseni to nikomu jeste neprospelo;).....
- Václav Sedlář
- Žlutá karta Bazar

-
- Registrován: 01. dub 2006
- Bydliště: Liberec
- Kontaktovat uživatele:
Re: odpočet času (javasriptem) + odeslání formuláře...
Hmm, fakt to je skvělé...kdybych to uměl, nebo měl čas se to naučit, tak sem nepíšu...od čeho je tady to forum...

- 1Pupik1989
- Začátečník

-
- Registrován: 20. říj 2011
- Bydliště: Dvůr Králové nad Labem
Re: odpočet času (javasriptem) + odeslání formuláře...
Takže rozdíl dvou časů a následný převod do stringu je asi jasný.
Dám sem svůj původní, který už nepoužívám, nicméně funguje a princip se z toho dá vyčíst
Je to vlastně obyčejný konstruktor. Já to radši tak nějak v kupě přehledněji.
Dám sem svůj původní, který už nepoužívám, nicméně funguje a princip se z toho dá vyčíst
Kód: Vybrat vše
function Timer(time){
this.time = time;
};
Timer.prototype = {
start:function(){ //Spuštění funkce
var that = this;
this.step(this.time);
this.timer = setInterval(function(){
that.time -= that.subTime;
that.step(that.time);
if(that.time<=0){
that.stop();
that.complete();
}
},this.subTime);
},
subTime:1000, //Čas po kterém se cyklus opakuje
step:function(){ //Zde se dá nastavit, co se každý krok stane
},
complete:function(){ //Co se stane, až časovač dojde nakonec tedy k 0
},
stop:function(){ //zastavení časovače
clearInterval(this.timer);
},
toString:function(){ //Převod milisekund na řetězec
if(this.time<0){ return false; }
var diff = this.time;
var d = 24*60*60*1000, h = 60*60*1000, m = 60*1000;
var days = diff/d ^ 0;
diff -= days*d;
var hours = diff/h ^ 0;
diff -= hours*h;
var minutes = diff/m ^ 0;
diff -= minutes*m;
var seconds = diff/1000 ^ 0;
diff -= seconds*1000;
return days+" dní "+hours+":"+minutes+":"+
seconds+"." +diff;
}
};CPU: AMD Phenom II x4 955BE @ 4GHz FAN: Arctic Cooling Freezer Xtreme rev.2
MB: MSI 760GM-E51
RAM: Kingston 2x4Gb RAM DDR3 1333 @ 1466MHz
GPU: Gigabyte Radeon HD 6850 OC 985/1260MHz
HDD: WD Caviar Green WD10EARX 1TB SATAIII/600, ZDROJ: Fortron FSP550-APN (550W)
MB: MSI 760GM-E51
RAM: Kingston 2x4Gb RAM DDR3 1333 @ 1466MHz
GPU: Gigabyte Radeon HD 6850 OC 985/1260MHz
HDD: WD Caviar Green WD10EARX 1TB SATAIII/600, ZDROJ: Fortron FSP550-APN (550W)