Witam

Kilka dni temu napisałem skrypt, który elegancko wykonuje logowanie. Po wykonaniu logowania ładnie się wyłączało koienko gdzie się wpisywało dane. I dzisiaj gdy poprawiałem uwierzytelnianie poprawiłem pomyślałem, że zrobię jeszcze automatyczne zanikanie zaciemnienia, które pojawiału się przy kliknięciu na loguj się razem z oknem logowania.
Niestety, gdy wpisałem także $('#zaciemnienie').fadeOut(); do skrupty success w funkcji ajax. Wszystko stanęło. Myslałem, że to po prostu coś z tym zanikaniem zaciemnienia i zacząłem z nim kombinować.
Po wielu nieudanych próboach zrobienia tego efektu zdecydowałem, że cofnę do pierwotnego stanu - czyli z przed zmian, i zrobię to kiedy indziej. Niestety, kiedy powróciłem nawet do tamtego, cały efekt w ogóle przestał działać. I okienko logowania zrobiło się całkowicie nieaktywne.

Co najdziwniejsze, żadne efekty nie pojawiają się po pozytwynej próbie logowania. Natomiast, gdy wpisuje się złe dane, wszystkie funkcje działają.
  1. if(nazwaWynik == true && hasloWynik == true){
  2. $.ajax({
  3. type :'POST',
  4. url :'logowanie.php',
  5. dataType :'json',
  6. data :{
  7. opcja :'wykonajLogowanie',
  8. nazwaUzytkownika :nazwaUzytkownika,
  9. hasloUzytkownika :hasloUzytkownika
  10. },
  11. success: function(odpowiedz){ // *2
  12. if(odpowiedz.wynikInicjacji == false){
  13. $('p[name="bladLogowania"]').html(odpowiedz.blad);
  14. }
  15. else if(odpowiedz.wynikInicjacji == true){ // problem zaczyna się właśnie tutaj. *1
  16. $('#oknoLogowania').html('<h2>Logowanie w ENDO</h2><h3>Logowanie przebiegło pomyślnie.</h3>');
  17. $('#oknoLogowania').delay(3000).fadeOut();
  18. }
  19. }
  20. });
  21. }
  22. else{
  23. $('p[name="bladLogowania"]').html(blad);
  24. }
  25. });


*1 - Mimo iż skrypt php przekazuje prawidłowo true, to warunek else if i tak jego nie odczytuje. Natomiast false odczytuje i wykonuje polecenie po spełnieniu warunku.
Próbowałem także to zamienić na zwykłe else lecz też nic to nie dało.

*2 - Zamieniłem także wynik 'success' na 'complete', który również nie potrafił wykonać polecenia true, a false jak najbardziej.