![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 26.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Chciałbym wiedzieć, czy jest możliwość aby do poniższego kodu opierającego się na zasadzie pokaż/ukryj byłaby jakaś możliwość doczepienia ciasteczek, które umożliwią po odświeżeniu czy nawet wyłączeniu strony zapamiętanie ostatniego wyboru podczas ponownego korzystania z niej.
Zapytam też czy jest jakaś możliwość uzyskania tego efektu bez korzystania z ciasteczek? Jest to dla mnie bardzo skomplikowane, a poza tym nie wszystkie przeglądarki obsługują cookies. Proszę o pomoc. Pozdrawiam. Ten post edytował piernik123 2.04.2011, 11:17:35 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Cytat poza tym nie wszystkie przeglądarki obsługują cookies Które? Chyba, że użytkownik sam zrezygnuje, ale to inna bajka ![]() Ciasteczka może i wydają się trudne/skomplikoawne, ale takie nie są. Polecam małą pomoc naukową: http://blog.kukawski.pl/2007/02/26/js-a-cookies/ i http://blog.kukawski.pl/2008/12/28/ciastec...avascript-cz-2/. Artykuły stare, ale jare ![]() Co do innych metod to takowe istnieją, ale są nieobsługiwane przez starsze przeglądarki - http://blog.kukawski.pl/2009/05/09/przecho...tronie-klienta/ Ten post edytował kamil4u 2.04.2011, 13:25:08 -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 26.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Nie bardzo mi to pomogło
![]()
Wiem, że wygląda to prymitywnie, ale jak wcześniej pisałem jest to dla mnie bardzo skomplikowane; nawet po lekturze, która została mi kilka godzin temu zadana;) Ten post edytował piernik123 2.04.2011, 20:47:39 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Byłeś blisko
![]() -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 233 Pomógł: 87 Dołączył: 6.03.2009 Ostrzeżenie: (40%) ![]() ![]() |
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 26.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Kamil jesteś świetny. Próbowałem jednak dodać ten kod na stronę i przez błędy po wywołaniu funkcji tekst znika. Musiałem go trochę poprawić i znów się pogubiłem:
Po dodaniu funkcji show wszystko działa (nazwę funkcji ukrywającej tekst nazwałem tabeleczki, ponieważ tak też jest na stronie;)) ale jak teraz dołożyć do tego cookies?
Bo teraz coś namieszałem i kod znów zaczyna błędnie działać Ten post edytował piernik123 3.04.2011, 09:09:57 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 447 Pomógł: 191 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
http://laczek.ath.cx
to mój skrypt forum i działa chowanie kategorii, popatrz w źródło, raczej nie jest skomplikowany ![]() -------------------- :)
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Tym razem już nie analizowałem całego kodu, ale i tak zauważyłem kilka błędów:
- w funkcji show masz : setCookie('test',element) ,ale nie ma zmiennej "element", tylko "id" - nie widzę u Ciebie funkcji menu, a w kodzie masz: menu('m0'); - nadpisujesz ciasteczko - ogólnie trochę chaotyczny kod ![]() Rozumiem, że chcesz jednym linkiem otwierać kilka elementów, zrób tak: - użyj atrybutu klasy(class) lub nazwy(name) - użyj jednej funkcji, która pokazuje wszystkie pola(razem z zapisem do ciasteczka i ukrywania pozostałych pól) - do powyższej funkcji jako argument podawaj nazwę klasy, nazwy, a nie tak jak dotychczas id - w ciastku zapisuj nazwę klasy,nazwy - kod do pokazywania(tyko pokazywania, bez obsługi ciasteczek i ukrywania innych pól) może wyglądać tak: Kod function show(name){ var i,els, el; for(i=0,els=document.getElementsByName(name); el=els[i++]){ el.style.display = 'block'; } } Ew. możesz zapisać w ciasteczku tablicę: http://forum.4programmers.net/Webmastering...ablic_w_cookies , ale nie polecałbym Tobie tego. -------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 26.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Już mniejsza o kod, bo samemu i tak nic lepszego nie uda mi się napisać
![]()
Sam kod wygląda na razie tak:
Proszę o jeszcze chwilę cierpliwości do mnie, bo czuję że jestem na prawdę blisko, ale bez Waszej pomocy nie uda mi się tego skończyć ![]() |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Źle mnie zrozumiałeś. Mam nadzieję, że to jest to co chciałeś: http://jsfiddle.net/V4jSv/2/
-------------------- |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 26.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Wielkie dzięki, dokładnie tak chciałem. Jeszcze zapytam czy mimo wszystko nie ma możliwości pozostania przy mojej wersji kodu, z funkcją show. Bez niej po wstawieniu kodu na stronę po prostu skrypt przestaje poprawnie funkcjonować. Nie wiem czemu; co prawda pokaż/ukryj działa, ale divy zmieniają pozycję, a co najważniejsze po odświeżeniu strony wciąż jest "Tekst1". Błędów raczej nie popełniłem, od godziny starałem się umieścić Twój skrypt na stronie (www.chelseafc.ugu.pl - przyciski Terminarz/Tabela - na www.chelseaforum.pl z funkcją show działają) lecz wciąż mi to nie wychodzi. Ale mimo to dzięki, bo na prawdę mi pomogłeś i w razie braku odpowiedzi postaram się jeszcze z tym pobawić chociaż obawiam się, że nic z tego nie będzie.
|
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Przeanalizuj mój kod i spróbuj sam coś wykombinować. W Twoim kodzie jest dużo błędów. Chociażby zapisywanie ciasteczka - przeanalizuj co tam napisałeś.. setCookie - funkcja ta przyjmuje 2 argumenty(więcej, ale dla Ciebie 2
![]() Jeżeli będą tam tylko 2 dane możesz zapisywać do ciasteczka wartość true/false i w zależności, którą tabelkę chcesz pokazać odpowiednio manipulujesz ciastkiem: Kod function pokaz1ukryj2(){
//... ciastko = false; } function pokaz2ukryj1(){ //... ciastko = true; } if(ciastko == true) pokaz1ukryj2() else pokaz2ukryj1(); -------------------- |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 26.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Zauważyłem jeszcze, że Twój kod nie chce działać na IE, i to nie tylko na mojej stronie, ale też w fiddlerze:
Źle mnie zrozumiałeś. Mam nadzieję, że to jest to co chciałeś: http://jsfiddle.net/V4jSv/2/ Czemu? ![]() Poza tym udało mi się wstawić ten skrypt na stronę, ale cookies wciąż nie działa; mimo, że zawartość poprawnie zmienia się z p1 na p2, po odświeżeniu strony wciąż pojawia się tekst dla klasy akapitu p1. Jest jakaś możliwość, że mam zbyt obciążony serwer aby to funkcjonowało? Ten post edytował piernik123 4.04.2011, 17:47:28 |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
W IE popatrz w konsolę błędów. Z funkcją getElementsByClassName nie powinno być problemów - w necie są tysiące takich funkcji(, gdyż IE natywnie jej nie obsługuje)
Zainstaluj dodatek do FF do zarządzania ciasteczkami i zobacz co jest grane. I zawsze spr. konsolę błędów. -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 06:58 |