![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 304 Pomógł: 1 Dołączył: 28.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Mam sobie w index.php taki blok
w css to wyżej jest zdefiniowane tak: #error{ position: absolute; width: 312px; height: 240px; left: 400px; top: 200px; } .off{} .error_window{ background-image: url(img/error_window.png); } Do index za pomocą AJAX wczytuję pewien skrypt php w którym są instrukcję warunkowe. w jednej z tych instrukcji chciałbym aby nazwa klasy powyższego diva się zmieniła. Do tego potrzebne jest mi wywołanie nast js w php: function error_window(divID) { var el = document.getElementById(divID); el.className='error_window'; } to co aktualnie mam w interesującej mnie instrukcji warunkowej php to:
I tu pytanie dlaczego wywołanie js w echo mi nie działa? echo $error wyświetla się tam gdzie trzeba. Wszystko ma działać asynchronicznie. Pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Zapodaj to publicznie bo raczej wywołujesz skrypty w złej kolejności.
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 304 Pomógł: 1 Dołączył: 28.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
jak to publicznie? jak wywołam to w innej kolejności to nie będzie spełniać zadania. className ma się zmieniać zależnie od wartości przekazanej do instrukcji warunkowej php
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 869 Pomógł: 53 Dołączył: 20.10.2003 Skąd: Przeworsk Ostrzeżenie: (0%) ![]() ![]() |
Ale jak to się nie wyświetla? Może po prostu nie widzisz efektu? Wydaje mi się, że w kodzie js zapomniałeś dodać średnika.
Ten post edytował Kildyt 16.07.2009, 23:36:13 -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 304 Pomógł: 1 Dołączył: 28.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
efekt byłby widoczny. Zrobiłem test i odrazu przy ładowaniu index ładował się div tylko poprostu zmieniłem na <div id="error"> i w css to co w klasie przeniosłem do #error i efekt był. w skrypcie ze średnikiem też próbowałem - on nie jest konieczny
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 589 Pomógł: 91 Dołączył: 22.05.2008 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
Kod el.className='error_window'; Jedynie IE posiada właściwość className. Reszta popularnych przeglądarek posiada właściwość class, aczkolwiek nie wiem czy className nie działa w nich także poprawnie. Poza tym wydaje mi się, że masz to źle zaprojektowane. Czy nie można w Twoim wypadku zrobić tak: Ajax wczytuje jakiś plik php, on się wykonuje i zwraca wyniki, zamiast
samo
A wykonaniem funkcji error_window('error') zajmuje się JS w oparciu o readyState == 4 -------------------- Moja gra - scraby.io
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 304 Pomógł: 1 Dołączył: 28.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
dzięki #luq Twoje rozwiązanie działa- oczywiście sog dla Ciebie:)
Jednak co do nie działania className w innych przeglądarkach niż IE się nie zgodzę. Mam np taki skrypt który sprawdza jaka jest rozdzielczość ekranu i w zależności od wyniku za pomocą className zmienia wartość class div'a i to działa. |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 589 Pomógł: 91 Dołączył: 22.05.2008 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
Być może. Tak jak napisałem:
Cytat aczkolwiek nie wiem czy className nie działa w nich także poprawnie. W specyfikacji jest chyba .class (nie chce mi się tego teraz sprawdzać). Kiedyś pisałem coś i wykorzystałem właściwość .class wszędzie śmiłago dobrze tylko nie pod IE bo tam jest .className stąd moja uwaga. -------------------- Moja gra - scraby.io
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat W specyfikacji jest chyba .class (nie chce mi się tego teraz sprawdzać). Wszędzie jest className. [; -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 589 Pomógł: 91 Dołączył: 22.05.2008 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
Masz rację erix. Sprawdzałem
![]() class jest słowem zarezerwowanym na kolejne wersje ECMAScript. -------------------- Moja gra - scraby.io
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 304 Pomógł: 1 Dołączył: 28.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
#luq to co doradziłeś mi działa ale nie osiągnąłem do końca zamierzonego efektu.
Funkcja error_window po naciśnięciu rejestruj wykonuje się w obrębie readyState == 4. Czyli wykona się niezależnie od tego czy wystąpił błąd w formularzu rejestracyjnym czy nie. Ona musi się dlatego wykonać w skrypcie php razem z echo $error; i zmienić class tego diva. Czyli znowu jestem na początku:/ |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 589 Pomógł: 91 Dołączył: 22.05.2008 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
A co za problem napisać tak:
Kod if( oRequest.readyState == 4 ){ if( oRequest.responseText ){ error_window('error'); } } Wtedy gdy $error == '' nic się nie stanie -------------------- Moja gra - scraby.io
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 304 Pomógł: 1 Dołączył: 28.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki o to mi chodziło:)
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.08.2025 - 23:19 |