Javascrtip visszaszámláló adatbázisból
2011-12-01T05:54:22+01:00
2011-12-07T11:06:31+01:00
2022-07-19T04:22:52+02:00
  • Ha tetszőleges domain-ról szeretnéd megjeleníteni a visszaszámlálást, akkor használj jsonp-t:

    $.get("http://walaholaveben.hu/modul/countdown.php",{countID:32837},function(data){ if(!data.error){ startCountDown("#counterDivID",data.timeLeft) } } else { counterErrorHandler() } ,"jsonp");

    A startCountDown, és a counterErrorHandler egyértelmű.

    header("Content-Type: text/javascript; charset=UTF-8"); // opendb ( PDO --> $db ) // checkUser function jsonpAnswer($p){ return $_GET["callback"]."(".json_encode($p).")"; } $counterResult = $db->prepare('SELECT endDate from schedule WHERE id = :counterId '); $counterResult->execute(array(":counterID",$_GET["countID"])); if($counterResult){ echo jsonpAnswer($counterResult->fetchALL(PDO::FETCH_ASSOC)); } else { echo jsonpAnswer(array("error",$db->errorInfo())); }
    Mutasd a teljes hozzászólást!
  • lekéred a határidőt és elrakod egy változóba még az összes HTML kód előtt

    Vagy éppen ott, ahol használni akarod

    Egyébként igazad van


    nervus.v:
    <html> .. <body onload="start()"> <script> mp=<?php hátralávő idő lekérdezése mp-ben; és kiírása pl. egy echo-val;?>; function ido() { // Itt az mp értékét átszámolod óra:perc:mp-be (szépen osztogathatsz 60-al és a maradékok, illetve a 2. után az egész kellenek), van pár példa a prog.hu-n is mp-- document.getElementById('idohely').innerHTML=amitSzamoltal } function start() { setInterval("ido()",1000) } </script> <div id="idohely"></div>


    Csak érdekes lesz, hogy a szerverről lekért idő és a megjelenítés között mennyi idő tellik el, amíg lejön a böngészőbe és megjelenik.
    Mutasd a teljes hozzászólást!
  • A legegyszerűbb, ha PHP-vel csatlakozol az adatbázishoz, lekéred a határidőt és elrakod egy változóba még az összes HTML kód előtt. Utána már csak ki kell írni ezt a változót a megfelelő helyre a JS szkriptedben.

    @Stefan7 Amit írtál, az elég durva n00bság volt...
    Mutasd a teljes hozzászólást!
  • Nem, ez úgy nem működik, mivel ehhez jquery kell. Vagy ajax. Nem sima JS.

    És igen, saját szerver.
    Mutasd a teljes hozzászólást!
  • Hi !

    szerintem ez jó is lenne erre a célra:

    jQuery-plugins.hu

    egyszerű, mint a faék

    Mutasd a teljes hozzászólást!
  • De ez is úgy működik.Amúgy van saját szerver géped?
    Mutasd a teljes hozzászólást!
  • Szia!
    Ne haragudj, de ezt én is ki tudtam guglizni, nálam az igazi probléma abban rejlik, hogy egy SQL adatbázisból kell kinyerni a határidőt, ameddig tart a visszaszámlálás, ezzel akadtam el.
    (Tehát az éppen aktuális perctől az xy tábla hatarido mezőjéig kell visszaszámolni.)
    Mutasd a teljes hozzászólást!
  • Mutasd a teljes hozzászólást!
  • Szia!
    A harmadik példát már a
    bevezetőben is megemlítettem.
    A program kiszámítja, hogy
    hány nap van még hátra 2000-
    ig. <HTML> <HEAD> <SCR I PT LANGUAGE= "JavaScr i pt "> < ! -- JavaScr i pt kód e l rej tése funct i on menny i ( ) { datum_ma i = new Date( ) ; datum_2000 = new Date(2000, 0, 1) ; nap_per_ezredmp = 24 * 60 * 60 * 1000; ku l onbseg = (datum_2000 . getT ime( ) - datum_ma i . getT ime( ) ) ; ku l onbseg = ku l onbseg / nap_per_ezredmp; ku l onbseg = Math . round(ku l onbseg) ; i f (ku l onbseg < 0) uzenet = "Már e lmú l t 2000 ! " ; e l se uzenet = "Még " + ku l onbseg + " nap 2000- i g ! " ; a l ert (uzenet ) ; } / / --> < /SCR I PT> < /HEAD> <BODY> <FORM> < I NPUT TYPE= "button" VALUE= "Menny i nap van még 2000- i g?" onC l i ck= "menny i ( ) "> < /FORM> < /BODY < /HTML> Mennyi nap van még 2000-ig? Nézzük meg, mit is tesz a
    program! Ha a gombra
    kattintunk, akkor meghívjuk a mennyi() nevű függvényt. Ez létrehoz 2 dátum objektumot datum_mai ésdatum_2000 néven. Az előbbi az aktuális
    dátumot, a második 2000.
    január 1-ét tartalmazza. A nap_per_ezredmp nevű változóban az egy napban lévő
    ezredmásodpercek számát
    tároltuk el (24 óra * 60 perc *
    60 mp * 1000). A következő sor
    számolja a különbséget a getTime() nevű metódus segítségével, amely 1970. január
    1-től az adott dátumig eltelt
    ezredmásodpercek számát adja
    vissza. Igy ha vesszük a két
    dátum ezredmásodpercbeni
    különbségét, majd ezt osztjuk a nap_per_ezredmp vátozónkkal, akkor megkapjuk a
    két dátum között eltelt napok
    számát. Ez persze nem biztos,
    hogy egész érték, így
    kerekítjük azt aMath objektumround() metódusával. Ezt az értéket tároljuk a kulonbseg nevű változóban. Majd megvizsgáljuk, hogy a
    kapott érték negatív-e? Ha
    nem, akkor a napok számát
    írjuk ki, ha igen, akkor már
    elmúlt 2000 január 1., így mást
    írunk ki az üzenetablakba. Az utolsó példa is hasznos lehet.
    Ha valaki kószál a hálón, fontos
    tudnia, hogy mennyire friss
    adatokat olvas egy oldalon. Az
    oldalak szerkesztői legtöbbször
    odaírják, hogy mikor frissítették azt utoljára. Ezeket az
    adatokat sok oldal esetén
    azonban nem is olyan könnyű
    karbantartani. A következő
    program automatikusan
    beszúrja, hogy mikor frissült utoljára az oldal. Ezen oldal utolsó módosításának
    dátuma:2004. október 1, péntek <HTML> <BODY BGCOLOR= "#FFFFFF "> <CENTER> <SCR I PT LANGUAGE= "JavaScr i pt "> < ! -- A JavaScr i pt kód e l rej tése Napok = new Array( "vasárnap" , "hét fő" , "kedd" , "szerda" , "csütörtök" , "péntek" , "szombat " ) ; Honapok = new Array( " j anuár " , " február " , "márc i us " , "ápr i l i s " , "máj us " , " j ún i us " , " j ú l i us " , "augusztus " , "szeptember " , "október " , "november " , "december " ) ; mod = new Date(document . l astMod i f i ed) ; document .wr i te( "Ezen o l da l uto l só módos í tásának dátuma : <BR> " ) ; var ev = mod . getYear ( ) ; ev += (ev < 80) ? 2000 : 1900; document .wr i te(ev+" . " ) ; document .wr i te(Honapok[mod . getMonth( ) ] +" "+mod . getDate( )+" , " ) ; document .wr i te(Napok[mod . getDay( ) ] ) ; / / --> < /SCR I PT> < /CENTER> < /BODY> < /HTML> Létrehozunk két tömböt, az
    egyikben a hét napjainak nevei,
    a másikban a hónapok nevei
    vannak. Adocument objektumnak van egy lastModified nevű mezője, amelyből kiolvashatjuk az utolsó
    módosítás dátumát. Ez egy
    sztring, amiből elkészítjük a
    dátum objektum egy példányát.
    Ezt végzi el a következő sor: mod = new Date(document . l astMod i f i ed) ; Így kapjuk amod nevű objektumot, amely már az
    utolsó módosítás dátumát
    tartalmazza. Ebből
    megkaphatjuk az éveket a getYear(), a hónapokat a getMonth(), a hónap napjait a getDate(), a hét napjait a getDay() metódusok alkalmazásával. A napok és
    hónapok neveit úgy kapjuk meg,
    hogy megkeressük aNapok tömbmod.getDay() indexű elemét, ill. aHonapok tömb mod.getMonth() indexű elemét. Már csak egyetlen dologra kell
    figyelni! A document.lastModified sztring az éveket századok
    nélkül tárolja. Így 1999-ben 99-
    et, 2000-ben 00-át, 2001-ben
    01-et tartalmaz. Az alábbi két
    sor részben kiküszöböli ezt a
    problémát: var ev = mod . getYear ( ) ; ev += (ev < 80) ? 2000 : 1900; Kiolvassuk az évek számát az ev nevű változóba, majd a korábban említett szerkezettel,
    haev < 80, akkor 2000-et, ha ev >= 80, akkor 1900-at adunk azev változóhoz. Ezzel helyesen tudjuk kezelni az 1980
    és 2079 között keletkezett
    oldalakat.

    Ha jo kerem a pontot
    kosz
    Mutasd a teljes hozzászólást!
  • Halihó, egy kis segítséget szeretnék kérni, mivel jqueryben és ajaxban nem vagyok ennyire otthon. :/

    Tehát: van egy mező az adatbázisom egyik táblájában, konkrétan a "hatarido". Ez egy dátum, pl: 2011-12-01 06:52:41
    Mindössze annyit szeretnék, hogy az egyik oldalon legyen egy kis visszaszámláló, ami jelzi az eddig hátralevő időt. Órában, percben, másodpercben, semmi extra. Szal hátralevő idő 12 óra 10 perc 20 másodperc. stb.

    Nagyon szépen köszönöm a segítséget.
    Mutasd a teljes hozzászólást!
abcd