![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 0 Dołączył: 25.06.2006 Skąd: Dąbrowa Górnicza Ostrzeżenie: (0%) ![]() ![]() |
Witam
Chciałem zmieniać pewne elementy strony bez jej przeładowania. Zasadniczo ładowanie pliku PHP do div jest proste, jednak ja chciałem zmieniać na przykład background-color jakiegoś elementu albo na przykład value jakiegoś buttona. Konkrety: Mam 16 divów, które wyświetlam o tak:
I teraz aby moje divy miały odpowiedni kolor tła, który ma się zmieniać w zależności od efektu działania skryptu php z interwałem co sekundę (to znaczy z opóźnieniem sekundowym) powyżej robię tak: najpierw: potem:
W obecnej postaci skrypt szaleje, albo po prostu nie działa. Jak to ma działać: Skrypt wykonaj.php sprawdza stan pinów gpio, w efekcie zwraca "0" bądź "1". czyli jeśli chcę znać stan pinu 1 wykonuję "wykonaj.php?action=read&pin=1" i dostaję 0 albo 1 i od tego uzależniam kolor tła wyświetlonego później diva. skrypt działa jeśli testowo usuwam pętle "for (step = 1; step <= 16; step++) {" i na sztywno definiuję zmienną $stepp na przykład na "6" wtedy div o id xyz_6 zmienia kolor tła. Czy ktoś ma pomysł gdzie popełniam błąd ? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 385 Pomógł: 26 Dołączył: 22.03.2008 Skąd: TM Ostrzeżenie: (0%) ![]() ![]() |
$.get jest asynchroniczne więc nim wykona się Twój callback pętla przejdzie już dalej. Stąd dostajesz średni efekt (IMG:style_emoticons/default/tongue.gif) rozwiązanie to np. niech Twój plik php zwraca wszystkie 16 wartości a nie jedną dla każdego. Wtedy masz jednego $.get'a i w jego callbacku zrobisz tego fora ;p
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 01:22 |