![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 139 Pomógł: 3 Dołączył: 5.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Napisałem w php kod który pokazuje czas do danego wydarzenia, a javacripcie dałem interwał który to ma pobrać i wyświetlić. Część działa bo onload ładuje to co zwraca funkcja, lecz dalej już się nie odświerza.
Kod:
Podejrzewam że coś źle połączyłem js z php, ale to tylko moje przypuszczenia ;p Czemu to może nie działać? P.s Demo: -> KLIK <- Ten post edytował koxu1996 16.09.2012, 12:21:02 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 511 Pomógł: 143 Dołączył: 13.03.2010 Skąd: Jasło Ostrzeżenie: (0%) ![]() ![]() |
bo PHP i JS działają w różnych kontekstach, tj PHP działa po stronie serwera, a JS po stronie użytkownika
Jak wchodzisz na stronę to kod PHP jest generowany tylko raz, przy odpowiedzi z serwera (wejściu na stronę), a potem JS zawsze używa tej samej, pierwszej odpowiedzi z serwera. Zobacz to w źródle strony masz, odp funkcji PHP wpisane w kod strony. Musisz albo posłużyć się AJAX albo całkowicie liczyć to po stronie JS, bazując jedynie na danych przekazanych przez PHP. Bardziej obrazowo można to porównać do drukarki i ołówka. PHP jest drukarką która drukuje stronę raz. A ołówek to JS który możesz pisać po książce i mazać, zmieniać tekst czy dorysowywać wąsy do portretów ludzi, stosunkowo łatwo. poszukaj w google przykładów odliczania np. na frazę: js countdown timer -------------------- Good luck and happy PHP'ing
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 139 Pomógł: 3 Dołączył: 5.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki wielkie za świetne wytłumaczenie
![]() funcion x(arg) to jak uzyc zmiennej arg w php ![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
funcion x(arg) to jak uzyc zmiennej arg w php ![]() Tak jak zrobiłeś to w 10 i 11 linii - po prostu wyświetliłeś. -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 139 Pomógł: 3 Dołączył: 5.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
Ale ja nie chce wstawić zmiennej php do js tylko zmienna z js do php. Mniej więcej coś takiego
Zresztą i tak się nie da chyba tego zrobić... Ciekawi mnie tylko czy są jakieś funkcje w javascript typu mktime czy time które nie korzystają z systemowego zegarka... Może znacie jakieś sposoby na pobranie czasu rzeczywistego? |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Funkcje PHP wykonują się PRZED jakimkolwiek JS i tę kolej rzeczy zmienia się AJAXem, który właśnie wykonuje skrypt PHP z dowolnymi parametrami (GET, POST).
Co do pytania o zegarek to JS nie ma nic wspólnego ze serwerem, działa na TWOIM KOMPUTERZE. Żeby w JS otrzymać czas serwerowy przekazujesz przy załadowaniu do niego zmienną za pomocą PHP. Najprościej będzie przekazać coś takiego. I w JS masz dostęp do czasu unix realnego i na podstawie jego robisz zegarek z odliczaniem sekundowym albo minutowym. Ten post edytował markonix 16.09.2012, 19:36:24 -------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 139 Pomógł: 3 Dołączył: 5.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
Próbowałem zrobić to za pomocą liczenia różnicy czasu między komputerem i serwerem, ale to nie za dobrze działało. Teraz zrobiłem plik time.php który zwraca czasy oddzielone średnikami, lecz nie wiem za bardzo jak pliku index.php pobrać to co zwraca time.php. Jak to zrobić?
Edit: Znalazłem coś takiego:
Jakby to wykorzystać? Ten post edytował koxu1996 24.09.2012, 08:11:29 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Pobieranie co sekundę godziny ze serwera?
Nie brzmi to jak horror bo to nie zapytanie do bazy czy coś ale jednak wciąż mało optymalnie poza tym mniej odporne na opóźnienia - nie zawsze skrypt wykona się natychmiastowo, dostanie laga itp. Po pierwsze nie pisz w surowym JS, pisz w jQuery i ta sieczka zmieni się w szacuje... 4 linie kodu. Zastosuj się do mojej sugestii z przypisaniem godziny na początku, przypisujesz czas w momencie załadowania kodu RAZ i potem co sekundę zmieniasz czas za pomocą setInterval. -------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 139 Pomógł: 3 Dołączył: 5.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
markonix, potrzebuje odliczaczy czasu które są dynamiczne (każde podbicie aukcji zwiększa czas) więc aktualizacja co sekundę jest potrzebna. Co do mysql to plik time.php pobierane czasy z bazy i je wyświetla. Mógłbyś pomóc trochę z jQuery? Bo nie ogarniam tego...
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Czy to są liczniki widoczne dla wszystkich czy tylko dla osoby podbijającej w danym momencie?
Ale co mam pomóc z jQuery? Nie proponowałbym jakby to było coś trudnego i mało znanego, a jest wręcz przeciwnie - to prostsza wersja JS z mnóstwem przykładów i tutoriali w internecie. -------------------- |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 139 Pomógł: 3 Dołączył: 5.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
Czasy maja byc wyswietlane wszystkim uzytkownikom. Jesli chodzi o pomoc z jquery to mam kod do ciaglej aktualizacji diva, ale nie wiem za bardzo jak go przerobic aby auktalizowal wszystkie divy. Jak wroce do domu kolo 18 to wrzuce kod jaki mam
|
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Każdy div niech ma atrybut określający z jakim czasem jest połączony - czyli id aukcji.
Tworzysz zapytanie ajaxowe, najoptymalniej zrobić jedno dla wszystkich aukcji. Pobierasz wszystkie czasy w postaci tablicy np. ID Aukcji => Czas. Oczywiście tablicę trzeba w jakiś tekstowy sposób zwrócić do skryptu, robi się to za pomocą formatu JSON. Gdy mamy tablicę już w JavaScript robimy foreach'a JS:
To wszystko w pętli co sekundę. Ten post edytował markonix 25.09.2012, 16:46:44 -------------------- |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 139 Pomógł: 3 Dołączył: 5.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
Dodałem w pliku do divów atrybuty, i w pliku mam taki kod:
plik time.php zwraca tekst w postaci: id;czas;price;winner|id;czas;price;winner| Co w skrypcie wstawić w miejscu komentarza by wczytać dane do tablicy i wyswietlić je? Ten post edytował koxu1996 25.09.2012, 17:35:18 |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Taki format wymusza na Tobie przerobienie tego na tablicę za pomocą explode w JS.
W PHP traktujesz tablicę za pomocą json_encode. Potem w JS już masz gotową tablicę i już można iść dalej. -------------------- |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 139 Pomógł: 3 Dołączył: 5.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
Explode w JS? A nie chodziło ci o split()?
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 08:15 |