Jquery countdown odliczany co 5 sekund

Witam serdecznie,

Próbuję zrobić skrypt w jquery który będzie się wykonywał cały czas:

  1. Odliczamy od 5 sekund do 0 czas (chodzi na okrągło)
  • wysyłamy posta do skryptu PHP dane.php

  • odbieramy wynik POST’a i wyświetlamy w alercie

  1. resetujemy licznik i odliczamy ponownie 5 sekund

Mam taki kod:

[/code]

niestety ten skrypt ani nie odlicza, ani nie wyświetla alertu… :frowning:

Czy mógłbym prosić o pomoc z poskładaniem tego skryptu?

Z góry dziękuje za pomoc,

Northwest

Skrypt odliczania poprawnie wygląda tak:

$('#defaultCountdown1').countdown({until: '+5s', format: 'HMS', onTick: everyFive});

function everyFive(periods) {

    if ($.countdown.periodsToSeconds(periods) == 0) {

        //do some logic

        $('#defaultCountdown1').countdown('option',{until: +5, format: 'HMS', onTick: everyFive});

	}

}

z wyjątkiem tym że użycie alertu powoduje oczekiwanie na akcje użytkownika i blokuje dalsze działanie skryptu. (I tak nawiasem - pobrałeś źródła pluginu jquery.countdown i po prawnie podałeś ścieżkę). razem z postem kod może wyglądać tak:

$('#defaultCountdown1').countdown({until: '+5s', format: 'HMS', onTick: everyFive});

function everyFive(periods) {

    if ($.countdown.periodsToSeconds(periods) == 0) {

        $.post("example.php", function() { alert("success");})

        .success(function() { alert("second success"); })

        .error(function() { alert("error"); })

        .complete(function() { alert("complete"); });


	     $('#defaultCountdown1').countdown('option',{until: +5, format: 'HMS', onTick: everyFive});

	}

}

tutaj miałeś złą semantykę - zdarzenie ma nazwę onTick a nie nTick

nie wiem jakie dane zwracasz w tym zapytaniu ale żeby to poprawnie zrobić zapoznaj się ze stroną

http://api.jquery.com/jQuery.post/

a dokładnie z przedostatnim przykładem

Ogólna rada przy tworzeniu kodu: rozbijaj problem na coraz mniejsze problemy aż będziesz wstanie je rozwiązać. Nie pisz całej metody, tylko sprawdzaj co linijka twój postęp.

aha, dziękuje za pomoc :slight_smile:

skrypt działa prawie… :slight_smile: jak bym chciał wyświetlić to, co zwraca pliczek php, to co powinienem dodać?

ps. dlaczego w tej konstrukcji:

$.post("plik.php", function() { alert("success");})

        .success(function() { alert("second success"); })

        .error(function() { alert("error"); })

        .complete(function() { alert("complete"); });

wyświetla mi wszystkie możliwe alerty? Nie powinno być tak, że w zależności od statusu wykonania posta powinien się wyświetlać adekwatny alert?:slight_smile:

Jeśli zapytanie zakończy się sukcesem to w tej konstrukcji powinny wyświetlić się 3 alerty (bez error alert)

W przypadku błędy 2 alert error i alert complete.

pisałem gdzie masz zajrzeć w sprawie zwracanych danych. Czy aż takie trudne?

$.post("plik.php", function( data ) {alert (data);}

....

chyba tak, sprawdź sam.

działa… dziękuje za pomoc :slight_smile: