x-kom hosting

[Rozwiązany] zachowanie danych w formularzu

Lucas4034
utworzono
utworzono

Witam.

Robię prostą stronkę na której znajduje się formularz do wyszukiwania danych. Po jego uzupełnieniu następuje weryfikacja poprzez javascript i jeśli jest OK to przechodzimy do nastepnej strony która wyswietla nam wyniki. Pod tymi wynikami powinno znajdować się cos w stylu wstecz. Jakiś odnośnik, który pozwoli nam na powrót do strony z formularzem zachowując dane które w niego wpisaliśmy. Ma ktoś pomysł jak to zrobić ?

luq
komentarz
komentarz

Gdzieś pewnie zapamiętujesz dane wpisane za pierwszym razem (jeśli są poprawne) więc z bazy wczytać i wypełnić.

Esus
komentarz
komentarz

Rozwiązanie luq'a jest dobre, ale wymaga dodatkowego zapytania do bazy danych, a przecież nie trzeba używać w tym przypadku dostępu do bazy danych, bo dane z formularza masz zawsze zapisane w globalnej tablicy $_POST, którą wystarczy przesłać do następnego formularza. Możesz także skorzystać z ciasteczek ($_COOKIE) - w php istnieje bardzo prosta funkcja setcookie, którą jednak trzeba uruchamiać przed wysłaniem czegokolwiek do przeglądarki. Jest to duży problem dla początkujących programistów, którzy nie oddzielają warstwy logiki sterowania od warstwy prezentacji (MVC).

Większość przeglądarek zachowuje informacje we wprowadzonych formularzach, więc prawdopodobnie

<a href="java script: history.back();">wstecz</a>

załatwiłoby sprawę, niestety nie ma żadnej normy która to gwarantuje, więc tą metodę należy odrzucić jako błędną dla ogólności.

grucha
komentarz
komentarz

Mi się wydaję, że taką zmienną lepiej już przerzuć z powrotem przez $_SESSION, niż bawić się w ciasteczka ;]

if(isset($_SESSION['zmienna'])){  echo $_SESSION['zmienna'];  unset($_SESSION['zmienna']);}

Oczywiście z pliku, który przesyłasz musisz umieścić

$_POST['szukaj']=$_SESSOION['zmienna']

Pisane z ręki, tak, że mogą być błędy :)

Oczywiście na początku plików musi się znaleźć:

session_start();

Ale oczywiście mogę się mylić co do tego rozwiązania :)

luq
komentarz
komentarz
Jest to duży problem dla początkujących programistów, którzy nie oddzielają warstwy logiki sterowania od warstwy prezentacji (MVC).

Można przecież użyć buforowania,

ob_start();//reszta kodu (HTML + PHP...);ob_end_flush();
Lucas4034
komentarz
komentarz

Dzięki , jutro bedę walczyl dalej i jesli bedzie OK poleca plusy;). Opcja z cookie odpada bo to kod dla takiej ogolnodostepnej budki informacyjnej ;) a tam takie patenty nie działaja ;/... zobacze jak pojdzie z session i resztą porad.

Esus
komentarz
komentarz

Oczywiście możesz używać sesji wbudowanej w PHP. Sesje w PHP działają powoli, ale w twoim przypadku nie jest to takie ważne, prawda? ;)

Można przecież użyć buforowania,
Myślałem, że to tylko pozory, ale to prawda. Ty jesteś masochistą. :P
Lucas4034
komentarz
komentarz

OK, problem rozwiazany. Dzieki wielkie 4All :)

luq
komentarz
komentarz
Myślałem, że to tylko pozory, ale to prawda. Ty jesteś masochistą. :P

Esus ja proponuje zastanowić się nad sensem swoich własnych wypowiedzi. Twoim wielkim celem zbawienia ludzkości jest przeogromna chęć pomagania innym a jakoś tego nie widzę. Czy myślisz że komuś ta wypowiedź pomoże? Czy w ogóle ktoś, poza tobą, wie o co Ci chodziło? Widzę, że ty w ogóle masz problem z układaniem własnych myśli. Ty jakąś maturę masz? Nie wiem jak Ciebie, ale mnie uczono podawać argumenty jeśli się w jakiejś sprawie wypowiadam. A tu ani sensu, ani argumentów, no kompletnie nic. Zastanów się nad sobą.

Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!

Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Strona wykorzystuje pliki cookies w celu prawidłowego świadczenia usług i wygody użytkowników. Warunki przechowywania i dostępu do plików cookies możesz zmienić w ustawieniach przeglądarki.