Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Odśwież - jakie zdarzenie obsłużyć?
newmala
post 10.09.2012, 20:42:06
Post #1





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 17.01.2012

Ostrzeżenie: (0%)
-----


Jaki jest sposób na przejęcie zdarzenie - odśwież w przeglądarce?

Chciałabym, aby mój formularz po odświeżeniu strony załadował wprowadzone wcześniej dane, tak , aby użytkownik ich nie utracił.
Pewnie wiele razy już coś takiego robiliście.


Go to the top of the page
+Quote Post
wNogachSpisz
post 10.09.2012, 21:09:49
Post #2





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Chyba tylko pod IE.

http://www.quirksmode.org/dom/events/load.html

To nie jest dokładnie to ale bardzo blisko.

Ten post edytował wNogachSpisz 10.09.2012, 21:13:14
Go to the top of the page
+Quote Post
kamil4u
post 10.09.2012, 21:11:59
Post #3





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

Ostrzeżenie: (0%)
-----


Wprost się nie da. Zapisz te dane w przeglądarce( http://blog.kukawski.pl/2009/05/09/przecho...tronie-klienta/ ) przy zdarzeniu wyjścia ze strony( onUnload ). Następnie przy zdarzeniu wejścia na stronę( onLoad ) sprawdź czy istnieją te zapisane dane i jeżeli tak to je wczytaj do formularza( metody DOM-owskie )


--------------------
Go to the top of the page
+Quote Post
newmala
post 10.09.2012, 21:43:53
Post #4





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 17.01.2012

Ostrzeżenie: (0%)
-----


Dzięki , znalzłam coś takiego :
[jquery]
if (!window.onload) {
alert ('przeładowanie strony');
} else {
alert('Clean up');
}
[/jquery]

Czyli za każdym razem jak będzie zdarzenie submit, odświeżenie to wyskoczy alert "Przeładowanie strony", ale kiedy ale zobaczę drugi alert?

Ja dane zapisuję sobie do tablicy $_SESSION, czy tak się robi? Rozumiem, że wtedy przy onload muszę sorawdzić postem, czy mam jakieś dane w tej tablicy i na tej podstawie odtworzyć sobie formularz z danymi? Czy przez jquery jest jakiś inny sposób? Ten opisany DOM Storage pewnie jest zbyt trudne dla początkującej osoby.
Go to the top of the page
+Quote Post
kamil4u
post 10.09.2012, 23:09:38
Post #5





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

Ostrzeżenie: (0%)
-----


Napisałem Ci jak to zrobić. Czego ode mnie oczekujesz? Że napiszę to za Ciebie - raczej nie. Zastosuj się do moich porad i w trakcie pisania tego skryptu pytaj w razie wątpliwości.

Cytat
znalzłam coś takiego

Jakaś bzdura kodowa smile.gif

Cytat
Czyli za każdym razem jak będzie zdarzenie submit, odświeżenie to wyskoczy alert "Przeładowanie strony", ale kiedy ale zobaczę drugi alert?

Zależy od reszty kodu, ale tak się nie pisze, więc dla zwykłego śmiertelnika - nigdy
Cytat
Ja dane zapisuję sobie do tablicy $_SESSION, czy tak się robi?

$_SESSION to tablica w PHP. A tu masz JS. Mógłbyś połączyć PHP z JS( przez AJAX).

Cytat
Rozumiem, że wtedy przy onload muszę sorawdzić postem, czy mam jakieś dane w tej tablicy i na tej podstawie odtworzyć sobie formularz z danymi?

Tak byś musiał zrobić, gdybyś chciał korzystać z PHP( AJAX ). Lepiej zastosować mój pomysł - przynajmniej ja widzę więcej plusów z takiego rozwiązania.

Cytat
Czy przez jquery jest jakiś inny sposób?

jQuery to biblioteka JS. Inaczej mówiąc zbiór funkcji umożliwiający pisanie w prostszy i szybszy sposób. Tak jakbyś napisał czy dojedziesz do Warszawy tylko Oplem( jQuery ), a Ty musisz użyć po prostu auta( JS )

Cytat
Ten opisany DOM Storage pewnie jest zbyt trudne dla początkującej osoby.

Nie wiem, bo już nie jestem początkującą osobą. Artykuł jest moim zdaniem bardzo dobrze opisany. Ale nie musisz z tego korzystać. Ale musisz znaleźć sposób zapisu danych. Nawet jak bardzo chcesz możesz użyć AJAX i próbować tak jak Ty chciałeś. Ja bym zrobił inaczej, ale tak też nie będzie tragedii .


--------------------
Go to the top of the page
+Quote Post
wNogachSpisz
post 11.09.2012, 08:40:00
Post #6





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Metod przechowywania informacji po stronie jest kilka:
https://github.com/jeremydurham/persist-js

Cytat
PersistJS (...) currently supports persistent client-side storage through the following backends:
flash: Flash 8 persistent storage.
gears: Google Gears-based persistent storage.
localstorage: HTML5 draft storage.
globalstorage: HTML5 draft storage (old spec).
ie: Internet Explorer userdata behaviors.
cookie: Cookie-based persistent storage.


Tylko niestety ta bibliteka czasami jest wykrywana jako wirus a innymi razy crashuje przeglądarkę sad.gif
a Google Gears jest martwe.

Ten post edytował wNogachSpisz 11.09.2012, 08:43:21
Go to the top of the page
+Quote Post
erix
post 12.09.2012, 10:20:45
Post #7





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




sessionStorage (w końcu chodzi o odświeżenie, a nie zamknięcie przeglądarki), było chyba zdarzenie onBeforeUnload i wtedy przy DOMContentLoaded sprawdzasz istnienie danych w SS.


--------------------

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!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.04.2024 - 10:26