![]() |
![]() ![]() |
![]() |
-lukasamd- |
![]()
Post
#1
|
Goście ![]() |
Witam,
mam skrypt logowania tradycyjną metodą + do tego nałożone szybkie logowanie po ajaxie w jquery - wszystko działa pięknie tak jak chcę. Problem w tym, że przypadku szybkiego, ajaxowego logowania wykonuję po odbiorze informacji o poprawnym zalogowaniu coś takiego: Kod document.location.href = document.location.href; W efekcie strona / karta zostają odświeżone. Co prawda w znacznie bardziej zautomatyzowany sposób, ale jednak nie jest to robione bez przekierowania. Chciałbym natomiast zwracać całą stronę już po zalogowaniu. Wiem jak to zrobić, o ile mam gdzie odebrane dane wrzucić np. do jakiegoś diva. Problem jednak w tym, że takiego diva nie ma. Samo PHP również nie zwróci mi strony bez nagłówka i stopki, a więc muszę wczytać wszystko. Próby używania np. document.html() spełzły na niczym. Jest to w ogóle wykonalne, czy jednak muszę ograniczyć dane przesyłane przez PHP i "upychać je" do konkretnego elementu? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Po pierwsze, po co łączyć ajax'a z przeładowaniem strony? Z założenia ajax jest właśnie po to, aby żądania wysyłać asynchronicznie, bez przeładowania strony.
Jeśli jednak, chcesz odświeżyć zawartość całej strony po poprawnym zalogowaniu, to możesz sobie zrobić mniej więcej tak: * skrypt js po stronie przeglądarki sprawdza logowanie, jeśli poprawne wysyła zapytanie do serwera o treść strony * treść strony może być wypełnieniem poszczególnych bloków, bądź nawet na upartego cała zawartość bod * odebrane dane wpisujesz do body zastępując to co w nim jest -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 437 Pomógł: 42 Dołączył: 16.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
zrób sobie takie coś: wysyłasz info przez ajax dodając dodatkową dane w `data`, np.: "logowanie.php?action=ajax"
i w skrypcie php za pomocą ifów wyświetlasz to co chcesz zmienić np nie chcesz wyświetlić nagłówka to wygladaloby to tak:
mam nadzieje, ze rozumiesz co chce Ci przekazać ;> |
|
|
-lukasamd- |
![]()
Post
#4
|
Goście ![]() |
No właśnie chcę uniknąć przeładowania
![]() Wiem jak ma to działać i mam tak zrobione - skrypt js sprawdza logowanie, otrzymuje obecnie info o statusie (np. error = 0 albo error = 1) i w zależności od nich wyświetla komunikat lub poprzez podany we wcześniejszym poscie kod dokonuje przeładowania. Problem leży w tym, że skrypt nie za bardzo jest w stanie przesłać tylko zawartości body - jak już, to całość. @sebekzosw: Rozumiem, ale w takim wypadku chyba lepsze będzie ponowne przerobienie panelu dla usera i wysłanie tylko jego. Ten post edytował lukasamd 29.09.2010, 12:00:48 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 437 Pomógł: 42 Dołączył: 16.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
możesz zrobić to w inny sposób... po pierwsze odbierać dane JSON z np.: logowanie.php. Pobierać takie dane jak status [0 - nie zalogowano, 1 - zalogowano] i treść a potem w JS odpowiedni warunek - jeżeli zalogowałeś się [status == 1] to zaktualizuj div z panelem, a jeżeli się nie zalogowałeś do z panelem nic nie robisz i wyświetlasz alert(tresc) (gdzie treść do jakiś komunikat) ...
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Możesz sprawdzać czy żądanie nastąpiło przez ajax'a, i jeśli tak to serwować sam content. Zmiana niezbyt duża.
-------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 16:23 |