Avatar billede sputii Nybegynder
14. april 2010 - 21:51 Der er 9 kommentarer

Ajax: Få en time animeret..

Hej..

Jeg ville gerne finde ud af hvordan jeg kan få trekket en Unix Timestamp ud fra en MySQL og derefter skal den i Javascript/Ajax gøre så den blive animeret med 10 9 8 7 osv.. Efter det skal den udskrive det..

Det er meget simpelt jo vis du ikke skal have det til at blive animeret men bare skal vise det men så er det ikke det samme for så skal du opdatere siden hele tiden..

Et eksempel på hvordan det ville se ud vis jeg ikke skulle have det animeret

$time = strtotime("+30 minute", time()); //Laver den tid som det skal tage at vente på tingen..
mysql_query("UPDATE Game SET `timeback` = '".$time."' WHERE brugernavn = '".$_SESSION["brugernavn"]."'"); //Indsætter tiden i databasen..

$mangler = ($row['timeback'] - time()); //Finder det den mangler i tiden..
$convert = date("H.i.s",strtotime("-1 hour",$mangler)); // Converter Unix timestamp om så den kan læses i tiden..

echo $convert; //Udskriver tiden i H = Timer i = minutter og s = sekunder..

Det er alt sammen ikke sat ind så det passer så du kan ikke køre dette uden at den ville blive ved med at sætte tiden om fra 30 minutter..

Men tilbage til mit problem..
Hvordan får jeg denne tekst animeret ind i noget javascript så`??

Fra b.php til j.js til b.php ..

Vidste ikke helt hvor jeg skulle poste når der jo ikke er noget AJAX forum..
Avatar billede olebole Juniormester
14. april 2010 - 23:58 #1
<ole>

Hjertet i Ajax er JavaScript, så et godt bud på en 'Ajax kategori' er Javascript kategorien  ;o)

Når det er sagt, så kan du ikke pushe data til klienten. Det er browseren, der via JS/Ajax skal forespørge serveren. Da du formaterer med et sekunds opløsning - og jeg går ud fra, du vil se sekunderne tælle ned et ad gangen - må du mindst sende en forespørgsel én gang i sekundet.

Jeg ved ikke, hvad det er, du skal bruge det til eller hvordan, men jeg kan ikke umiddelbart forestille mig en opgave, jeg ville løse sådan

/mvh
</bole>
Avatar billede sputii Nybegynder
15. april 2010 - 09:22 #2
Vil det sige at jeg skal hente dataen fra databasen fra javascript?

Ligesom i den du har lavet skal jeg bare have sat variablen til de sekunder som der bliver trukket ud af databasen..

var nTime = 5; // Det må jo være her at den skal blive sat til timestamp fra databasen..

function countDown() {
    var nH = Math.floor(nTime/3600),
    nRest = nTime%3600,
    nM = Math.floor(nRest/60),
    nS = nRest%60;
    if (nM<10) nM = "0" + nM;
    if (nS<10) nS = "0" + nS;
    oTime.firstChild.nodeValue = (nH+":"+nM+":"+nS);
    if (nTime==0) {
        alert("Færdig!")
    } else {
        nTime--;
        setTimeout("countDown()", 1000);
    }
}
var oTime = null;
window.onload = function() {
    oTime = document.getElementById("timeDisplay");
    countDown();
}
Avatar billede dkfire Nybegynder
15. april 2010 - 16:00 #3
Nu ved jeg at du har været på eksperten i en del tid, så det burde ikke være nyt, men Javascript kører i browseren, php kører på serveren, og din database ligger også på en server.
Du kan IKKE med javascript tilgå data i din database!
Avatar billede sputii Nybegynder
15. april 2010 - 16:11 #4
Hvordan får jeg så en data fra databasen til at animere sig????
Avatar billede nicolailissau Nybegynder
15. april 2010 - 16:16 #5
Det gør du som OleBole siger ved at sende en anmodning til databasen vha. AJAX hvert sekund.

Men jeg forstår ikke helt? - Du vil have at der er en funktion der skal tælle ned fra 10 til 0 og så skal vise dit timestamp?

Hvis det er korrekt forstået, så behøver du jo ikke hente fra databasen for at lave dit countdown?
Avatar billede sputii Nybegynder
15. april 2010 - 18:39 #6
Lad os sige at den skal bare opdatere et tal i databasen fra 0 til 1 når der er gået 10 sekunder..
Avatar billede olebole Juniormester
18. april 2010 - 19:09 #7
Ja, det kan vi såmænd godt sige - men det hjælper ikke så meget  =)

Som jeg nævnte før, er du efter al sandsynlighed inde på et løsningsmæssigt vildspor, men det er ikke muligt at anvise en løsning, når vi ikke kender noget til opgaven/applikationen
Avatar billede sputii Nybegynder
19. april 2010 - 11:07 #8
Hvilken del er det du ikke kender til?

Det eneste jeg skal have er en side der åbnes og så skal den tælle ned fra 10 og når den når 0 skal den opdatere mysql databasen.. Der skal den fx opdatere onoff fra 1 til 0..
Avatar billede olebole Juniormester
19. april 2010 - 16:14 #9
Ja, men det kan du ikke - og derfor må vi have nogle flere oplysninger om applikationen, og hvad den gør, så vi kan foreslå en løsning, som lader sig gøre
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester