odpočet času (javasriptem) + odeslání formuláře...

Vývojová prostředí, aplikace, skripty, http://www... síťové programy, internet, sdílení...
Odpovědět
Václav Sedlář
Žlutá karta Bazar
Žlutá karta Bazar
Registrován: 01. dub 2006
Bydliště: Liberec
Kontaktovat uživatele:

odpočet času (javasriptem) + odeslání formuláře...

Příspěvek od Václav Sedlář »

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ář...
Václav Sedlář
Žlutá karta Bazar
Žlutá karta Bazar
Registrován: 01. dub 2006
Bydliště: Liberec
Kontaktovat uživatele:

Re: odpočet času (javasriptem) + odeslání formuláře...

Příspěvek od Václav Sedlář »

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...
Václav Sedlář
Žlutá karta Bazar
Žlutá karta Bazar
Registrován: 01. dub 2006
Bydliště: Liberec
Kontaktovat uživatele:

Re: odpočet času (javasriptem) + odeslání formuláře...

Příspěvek od Václav Sedlář »

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...
Airywave
Nováček
Nováček
Registrován: 27. bře 2012

Re: odpočet času (javasriptem) + odeslání formuláře...

Příspěvek od Airywave »

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
Žlutá karta Bazar
Registrován: 01. dub 2006
Bydliště: Liberec
Kontaktovat uživatele:

Re: odpočet času (javasriptem) + odeslání formuláře...

Příspěvek od Václav Sedlář »

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
Začátečník
Uživatelský avatar
Registrován: 11. led 2010

Re: odpočet času (javasriptem) + odeslání formuláře...

Příspěvek od Broxik »

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
Žlutá karta Bazar
Registrován: 01. dub 2006
Bydliště: Liberec
Kontaktovat uživatele:

Re: odpočet času (javasriptem) + odeslání formuláře...

Příspěvek od Václav Sedlář »

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... :evil: :x
1Pupik1989
Začátečník
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...

Příspěvek od 1Pupik1989 »

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

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;
  }
};
Je to vlastně obyčejný konstruktor. Já to radši tak nějak v kupě přehledněji.
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)
Odpovědět

Zpět na „Programování a web“