![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 59 Pomógł: 6 Dołączył: 28.10.2009 Skąd: że znowu... Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich!
Mam duży problem odnośnie powracania do ostatnio oglądanych materiałów w portalu. Otóż sprawa wygląda tak, w portalu wyświetlają się obrazki i jest opcja następny która generuj obrazek LOSOWO wybrany. Dla przykładu Oglądamy obrazek ID 1331 Następny to ID 4411 Następny to ID 6628 Następny to ID 454 I teraz chcę zrobić sobie historię w sesjach by po kliknięciu Poprzedni wracało do tego który ostatnio był oglądany, w wypadku gdyby komuś spodobał się jakiś obrazek a przeleciał za szybko do następnego. W tym wypadku chcę zastosować coś takiego: Sesja HISTORIA = '454, 6628, 4411, 1331'; Gdzie po kliknięciu na poprzedni mogę sobie wrócić spowrotem, próbuję kilkoma sposobami jednak nic mi to nie daje. Sprówałam więc sposobem innym troche PROSTSZYM, aby sprawdzić czy to zadziała: Kod if(!empty($_SESSION['wsrodku'])){ $srodek=$_SESSION['wsrodku']; $_SESSION['poprzedniObrazek'] = $srodek; $teraz=$_SESSION['terazObr']; $_SESSION['wsrodku'] = $teraz; $_SESSION['terazObr'] = $id; echo $_SESSION['poprzedniObrazek']; } else { $poprzedni = ''; if(!empty($_SESSION['terazObr'])) { $teraz=$_SESSION['terazObr']; $_SESSION['wsrodku'] = $teraz; $_SESSION['terazObr'] = $id; } else { $_SESSION['terazObr'] = $id; } } Wiem wiem wygląda strasznie, ale na kartce rozpisując sobie to dokładnie przed rozpoczęciem pisania, powinno to działać, napisałam i niestety nie działa. Przyjmijmy liczby dla konkretnych sesji PoprzedniObrazek = 1 (to ten do którego mamy wrócić po kliknięciu na poprzedni) wsrodku = 2 (wartość następnego powrotu) teraz = 3 (obrazek który teraz ogladamy) I przykładzie powyżej powinno to być dziedzioczne 1 przejmuje 2, 2 przejmuje 3, a 3 otrzymuje wartość aktualnie oglądanego obrazka. Niestety u mnie wartość 1 i 2 jest ciągle taka sama. Czy macie jakieś pomysły? rady jak coś takiego zrobić, nigdy w życiu nie miałam z czymś takim doczynienia i jest to mój pierwszy raz, nawet nie wiem jak to logicznie zrobić by powracać do ostatnio oglądanych obrazków. Pomożecie mili Państwo? Dziękuje Natalia ![]() |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 695 Pomógł: 65 Dołączył: 27.07.2009 Skąd: Y Ostrzeżenie: (0%) ![]() ![]() |
jeżeli chcesz mieć całą "historie" jakie user obrazki oglądał proponował bym zrobić:
$suma = count($_SESSION['historia'])-1; $_SESSION['historia'][$suma] = $id_aktualnego_obrazka; a jak masz już menu Wcześniejszy to w hrefie dajesz link i na końcu ID $_SESSION['historia'][$suma-1] |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 59 Pomógł: 6 Dołączył: 28.10.2009 Skąd: że znowu... Ostrzeżenie: (0%) ![]() ![]() |
Wielkie dzięki za pomoc, zaraz coś pokombinuję
![]() testuję i działa w taki sam sposób jak u mnie, czyli mogę powrócić tylko do ostatniego obrazka, a nie do 3 w tył. Ten post edytował Natalka 3.05.2011, 14:31:00 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 314 Pomógł: 44 Dołączył: 12.11.2010 Skąd: UK Ostrzeżenie: (0%) ![]() ![]() |
Możesz sobie "nawalić sesji" np. $_SESSION['poprzedni'][$id_obrazka] i jako wartość wstawić poprzedni... sprawdzać issetem itd.
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 59 Pomógł: 6 Dołączył: 28.10.2009 Skąd: że znowu... Ostrzeżenie: (0%) ![]() ![]() |
Sprawdzam i niestety to nie działa.
Owszem zapisuje mi się to ładnie Kod Array ( [-1] => 113 [0] => 359 [1] => 514 [2] => 1295 [3] => 644 [4] => 528 [5] => 644 [6] => 296 [7] => 152 [8] => 1235 [9] => 866 [10] => 1483 ) Tylko że problem jest taki że jak wracam w tył, to przenosi mnie do 866 jak kolejny raz klikam w tył to już wracam do 1483 i to wszystko. Zmodyfikowałam to jeszcze w taki sposób aby po odświeżeniu nie dodawało mi jeszcze raz tego samego ID, oraz w momencie gdy przechodzę do POPRZEDNI to żeby nie dodawało mi rekordu na początku o tym ID. Możesz sobie "nawalić sesji" np. $_SESSION['poprzedni'][$id_obrazka] i jako wartość wstawić poprzedni... sprawdzać issetem itd. Cóż da mi to że zapisszę sobie : $_SESSION['poprzedni'][1345] $_SESSION['poprzedni'][51] $_SESSION['poprzedni'][616] $_SESSION['poprzedni'][1566] Powiedz mi w jaki sposób wrócić do 1345 a następnie do 51 i 616? Oraz po kliknięciu na następny aby on znajdował się na liście w taki sposób aby był pierwszy do którego powrócę. Niestety nie potrafię tego logicznie zrozumieć nawet, owszem na kartce rozpisałam przetestowałam na kilka różnych sposobów i działa. Ale w "życiu" niestety nie działa. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Może inaczej.
Wtedy id poprzedniego obrazka znajduje się w $_SESSION['historia'][($_SESSION['numer_obrazka']-1)]. Ech, nie zwróciłem uwagi, ale o podobnym rozwiązaniu pisał Ulysess. Ten post edytował mortus 3.05.2011, 15:52:42 |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 314 Pomógł: 44 Dołączył: 12.11.2010 Skąd: UK Ostrzeżenie: (0%) ![]() ![]() |
Cóż da mi to że zapisszę sobie : $_SESSION['poprzedni'][1345] $_SESSION['poprzedni'][51] $_SESSION['poprzedni'][616] $_SESSION['poprzedni'][1566] Powiedz mi w jaki sposób wrócić do 1345 a następnie do 51 i 616? Oraz po kliknięciu na następny aby on znajdował się na liście w taki sposób aby był pierwszy do którego powrócę. Niestety nie potrafię tego logicznie zrozumieć nawet, owszem na kartce rozpisałam przetestowałam na kilka różnych sposobów i działa. Ale w "życiu" niestety nie działa. Wybacz , co innego myślałem co innego napisałem. Dodałem dane testowe dla przejrzystości . Ten post edytował nekomata 3.05.2011, 18:52:00 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 14:59 |