![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 2 Dołączył: 19.04.2007 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
Witam, bawię się stronami w HTML i CSS i zaczynam PHP gdzie mam taki problem/pytanie. Przy takim skrypcie i ułożeniu strony klikając na linki strona1 2 lub 3 prawidłowo includuje mi się strona z zewnątrz ale na stronie głównej w menu zawsze aktywne świeci mi się to co było w html (bo jest przypisane na stałe) a teraz chciał bym aby np po kliknięciu link 2 aktywne było link 2, a nie sztywne link 1 poprzez wstawienie jakiejś funkcji wyboru.
Link do przygotowanej strony z przykładem --Przykładowa strona-- W kodzie dla nie ściągających stronę mianowicie mam tak: STR GŁÓWNA
..... Jak tutaj ustalić aby zmienna w którą się kliknie wyświetlała aktywną część? Wstawić zmienną np $wybrana która będzie wklejać tekst "current" w sekcji id czyli nadawała odpowiedni kod CSS? tylko jak to zrobić aby po kliknięciu na link gdzie np "$id=="strona2" wskaże iż $wybrana była równa current przy danym wyborze? <li id="$wybrana"><a href="index.php?id=srona1" target="_self"><span>strona 1</span></a></li> <li id="$wybrana"><a href="index.php?id=strona2" target="_self"><span>strona 2</span></a></li> <li id="$wybrana"><a href="index.php?id=strona3" target="_self"><span>strona 3</span></a></li> Nie wiem czy jasno to wytłumaczyłem ale na przykładowej stronie widać że w menu się nie zmienia ![]() |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Możesz po prostu pobierać aktywny adres i na jego podstawie określać co jest current.
Jest ładniejsze rozwiązanie za pomocą samego cssa i id body.
A body określasz odpowiednim id np
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 24.10.2010 Ostrzeżenie: (0%) ![]() ![]() |
Ja bym to zrobił tak że
tam gdzie masz wstawił to w znacznikach php, sprawdzanie zmiennej (if) i jeżeli jest 1 to
a jeżeli nie jest jeden to
i tak do każdego. Troche prymitywne, ale dopiero zaczynam w php ![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) ![]() ![]() |
Jak sam zauważysz po kliknięciu w link zmienia się zmienna "id" teraz wystarczy zmienić styl danego linku np.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 2 Dołączył: 19.04.2007 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
W zasadzie rajtek masz racje, nie wpadłem na to z printami, a mogło by to iść po najprostszej linii oporu. Nie mniej jednak chciałbym rozwinąć te 2 pozostałe wersję, bo wydają się dosyć optymalne do zmiany.
markonix jeśli chodzi o Twoją opcję, to na każdej stronię muszę dać opcję body id z różnymi nazwami jak: o_nas, startowa, kontakt i na każej z nich menu gdzie kod CSS wskazuje na każdej stronie aktywną inną opcję, bo nie bardzo potrafię sobie to wyobrazić? A co do CuteOne, gdzie najładniej jest rozpisany kod. Zrobiłem mniej więcej tak tylko zamiast CLASS dałem ID bo o taki znacznik mi dokładnie chodzi który ma być current albo nie, ale... no właśnie ale musiałem też w sekcji body nie tylko Twój kod ale i kawałek mojego dać
a menu oczywiście przy sekcji head. Wtedy mi przełączało i includowało strony tak jak w tym moim skrypcie, ale przełącznik podświetlający wybranie menu nie działał. Tzn w tym wypadku gdzie wszystkie 3 są current pierwsze jest cały czas podświetlone, a pozostałe były by gdybym wstawił current zamiast unactive. Ale samo się niestety nie przełącza.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) ![]() ![]() |
ehem już widzę w czym problem.
Jezeli nazwy plików będą inne możesz zastosować tablice do przechowywania nazwy wg. id
Ten post edytował CuteOne 25.10.2010, 23:31:35 |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
markonix jeśli chodzi o Twoją opcję, to na każdej stronię muszę dać opcję body id z różnymi nazwami jak: o_nas, startowa, kontakt i na każej z nich menu gdzie kod CSS wskazuje na każdej stronie aktywną inną opcję, bo nie bardzo potrafię sobie to wyobrazić? Tak. Dokładnie. U mnie na stronce możesz zobaczyć w praktyce. Sposób ten ma kilka zalet: - unikasz PHP, co zawsze jest jakimś odciążeniem - ogólnie trendy jest używać CSS zamiast JS/PHP gdy tylko się da (patrz "pure css" coś tam ;) ) - ID przydaje się do innych funkcji (u mnie z tego id skorzystałem także w JS przy ustalaniu skąd ma startować animacja, zobacz menu z ze skryptami włączonymi i wyłączonymi ) -------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) ![]() ![]() |
markonix: unikanie PHP w tym skrypcie to raczej minus. Wyobraź sobie przepisywanie w kółko stałych fragmentów strony [head, menu, stopka itp]. A przy umiejętnym korzystaniu z dobrodziejstw PHP obciążenie jest równe ~0
![]() |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Hm. Nic takiego się nie dzieje w moim przypadku:
Kod <?php include('./header'); ?> </head> <body id="xyz"> Tutaj treść strony <?php include('./footer.php');?> - kolejny plus: nagłówek head nigdy nie jest zamknięty więc można dodawać do niego jakieś skrypty czy pliki css potrzebne wyłącznie NA TEJ stronie ![]() Ten post edytował markonix 26.10.2010, 15:07:55 -------------------- |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 2 Dołączył: 19.04.2007 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
Tak na pewno będą wykorzystywane nazwy inne niż strona1, dlatego na pewno się przyda ta opcja
![]() |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) ![]() ![]() |
Pisałem już o tym- cały problem leży w tym aby odczytać zmienną ID przekazywaną w URL np. http://maxbox.czest.pl/test/index.php?id=strona1
Dlatego jeżeli chcesz zmienić styl dla linku musisz wiedzieć jaka wartość odpowiada za daną stronę a prościej - http://maxbox.czest.pl/test/index.php?id=strona1 zamiast <li id="<?php echo ($id == 1) ? "current" : "unactive";?>"><a href="index.php?id=srona1" target="_self"><span>strona 1</span></a></li> wstawiasz <li id="<?php echo ($id == 'strona1') ? "current" : "unactive";?>"><a href="index.php?id=srona1" target="_self"><span>strona 1</span></a></li> |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 13:06 |