Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: kasowanie zawartości formularza przy refreshu
Forum PHP.pl > Forum > PHP
Najki
Ciekaw jestem czy też macie taki problem, a może nawet znaleźliście rozwiązanie ku temu.

Załóżmy, że mamy zalogowanego użytkownika (na sesji), który np. próbuje napisać newsa przez panel na stronie (form, input, textarea). Taki user klika w jakiś link i przechodzi na inną stronę, ale zaraz chce kliknąć w przeglądarce 'cofnij' i wrócić do wpisywanej treści newsa, lub prościej - po prostu odświeża okno przeglądarki. I co widzi? Nic, bo wszystkie pola formularza się wyczyściły, lub przybrały wartość z value="cos tam".

Napewno nie jeden z Was tak miał. Co na to poradzić? Wiem, że może ktoś powiedzieć, że to nie ten dział, że to bardziej HTML, tymczasem robiąc stronę w HTML nie dzieje mi się coś takiego, a w php/HTML tak. Proszę o pomoc, bo to się staje irytujące...
hwao
Mozna do Cookie to wrzucac w JS zawsze:)
Jedyne co mozna w php kminic to
  1. <?php
  2. echo '<input name=\"cos\" value=\"'.@$_POST['cos'].'\"/>';
  3. ?>


jezeli to nie pomaga w gre wchodzi tylko JS + cookie smile.gif
Najki
No tak, ale trzebaby zapisywać cookie przez JS po wpisaniu każdego znaku, a to chyba trochę nie na rękę ;>. No ale nie rozumiem, dlaczego jeszcze nikt nie podał innego rozwiązania, skoro inne rozwiązanie jest napewno możliwe. No bo weźmy jako przykład właśnie tutejsze forum (IPB), albo najpopularniejsze phpBB. Zarówno tam, jak i tu, odświeżanie nie kasuje wpisanej do pola treści. Napewno jest jakiś sposób, ale dotyczasowa analiza kodu phpBB mi nie pomogła jakoś.
rml
ja takie dane wrzucam do informacji o sesji i w momencie powrotu usera sprawdzam w sesji czy juz byl na tej stronie, a jesli byl wstawiam odpowiednie dane z sesji w value smile.gif

nie wiem czy to dobre rozwiazanie, ale u mnie dziala bardzo dobrze smile.gif

a poza tym walcze wlasnie z header(), ktore za cholere nie chce mi pomoc w czyszczeniu posta i geta smile.gif ale to szczegol smile.gif


pozdrawiam,
rml.
Najki
Znalazłem pomoc, ale niestety na innym, mniej lubianym, forum sad.gif.

Dla zainteresowanych: http://forum.webhelp.pl/viewtopic.php?t=88120
hawk
Hmm, podany wątek na nielubianym winksmiley.jpg forum opisuje rozwiązanie w php. A tu mamy do czynienia z refreshem, lub po prostu kliknięciem przycisku "wstecz".

BTW, u mnie na Firefoxie kliknięcie "wstecz" nie usuwa wpisanych poprzednio treści. Nie tylko na naszym forum. Odświeżanie tak samo.

Wracając do problemu: jeżeli rzeczywiście przeglądarka nie zapamiętuje wpisanych danych, można spróbować wykorzystać zdarzenie odpalane przy wyjściu ze strony. Niestety, było to chyba MSIE-only.

Jeżeli na niektórych stronach tak się tobie dzieje, a na innych nie, to prawdopodobnie powodem jest jakiś header no-cache lub inny, albo przeglądarka inaczej traktuje POST niż GET.
areekz
Ja mam podobny problem z formularzem. Po wpisaniu informacji do formularza i po wyslaniu tych danych do innej strony, nie moge nacisnac WSTECZ w IE bo wyswietla sie info ze nie ma strony. Oczywiscie ten problem tyczy sie tylko stron z wykorzystaniem funkcji session_start(). W odpowiedzi dostalem wiadomosc ze to w IE normalne i mozna to obejsc uzywajac javy script, ale nie wiem dokladnie jak.
Spirit86
nie wiem czy znacie rozwiązanie z Mambo OS.
mianowicie przy edycji, dodawaniu itp. aby przejść na inną stronę należy zaakceptować confirma z JS. Moim zdaniem to jest najlepsze rozwiązanie winksmiley.jpg
j00seph
areekz
Mam rozwiazanie na tego IE:
na poczatku strony dajesz (ja formularze 6 - jeden z adrugim mam inkludowane):
  1. <?php
  2. header(&#092;"Cache-control: private\");
  3.  
  4. ?>


i teraz bezproblemowo mi wraca poprzes window.history.back


Ps. Zapraszam do klikania(250 klikow i jest licencja na Opere) :
http://my.opera.com/J00nash/affiliate/
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.