kowalewski92
29.01.2013, 13:27:40
Witam,
mam problem ze stroną. Chcę zrobić tak aby po kliknięciu w daną zakładkę została ona pomarańczowa. Analogicznie jak kliknę w następną to zmieni ona kolor na pomarańczowy, a ta stara wróci do stanu pierwotnego. Menu jest wczytywane za pomocą "include" jak i wszystkie zmienne treści. Zastanawiam się jak to zrobić? Czy ktoś może pomóc?
nospor
29.01.2013, 13:31:26
Problem jest banalnie prosty. Wystarczy że w linii 15 dasz taki kawałek kodu:
echo 'Zaznaczona zakładko podświetl się na pomarańczowo';
Zadziała na 100%
ps (na wypadek jakbyś nie załapał aluzji):
pokaż kod...wróżek nie ma...
http://jsfiddle.net/henrichro/SRBjz/po stronie PHP
if($_GET['nazwaStrony']){echo 'class=active';}
kowalewski92
29.01.2013, 14:52:21
Dzięki za odpowiedź. Czyli Javę wklejam w script i praży?
nospor
29.01.2013, 14:55:57
1) Nie javę a javascript lub jak nie lubisz długo to js
2) Nie wklejasz bezmyślnie, ale dopasowujesz do tego co masz. Jeśli by zadziałało dokładnie to co podał !*! to znaczyłoby, że z niego niezły wróżbita...
kowalewski92
29.01.2013, 19:03:26
Przepisałem to z tego linka:
http://jsfiddle.net/henrichro/SRBjz/do swojego pliku html i css. JS wstawiłem w <script></script>. Niestety po przepisaniu nie działa mi to? Czemu?
nospor
30.01.2013, 09:26:35
Podany tam kod wymaga biblioteki jQuery.
kowalewski92
30.01.2013, 19:54:07
Jednak to nie będzie działało ponieważ strona ulega przeładowaniu i to podświetlenie, które ma zostać znika po chwili bo od nowa się wczytuje. Jak kliknie się drugi raz po wczytaniu to już jest normalnie ale takie rozwiązanie jest bezsensu. Inaczej się chyba tego nie zrobi.
Podałem Ci dwa rozwiązania w JS i w PHP.
kowalewski92
30.01.2013, 22:04:47
Tylko ja nie do końca rozumiem jak mam to umieścić w moim pliku, a konkretnie gdzie. Wrzucam ten kod za "li" tak?
Mam osobny plik menu.php i co z nim dokładnie robię?
To jest moje menu:
Kod
<ul class="leftMenuList">
<li class="leftMenuList"><a href="micro_round#m15ml">Airless Dispensers</a></li>
<li style="list-style: none; display: inline">
<ul class="leftMenuList2">
<li class="leftMenuList2"><a href="micro_round#m15ml">Micro</a></li>
<li class="leftMenuList2"><a href="mezzo_round#m30ml">Mezzo</a></li>
<li class="leftMenuList2"><a href="mini_oval#m30ml">Mini</a></li>
</ul>
</li>
<li class="leftMenuList"><a href="aluminum#rb15ml">Cosmetic Jars</a></li>
<li style="list-style: none; display: inline">
<ul class="leftMenuList2">
<li class="leftMenuList2"><a href="aluminum#rb15ml">Aluminum</a></li>
<li class="leftMenuList2"><a href="san#so4ml">SAN</a></li>
</ul>
</li>
<li class="leftMenuList"><a href="glass3#drp3ml">Droppers</a></li>
<li style="list-style: none; display: inline">
<ul class="leftMenuList2">
<li class="leftMenuList2"><a href="glass3#drp3ml">Glass</a></li>
</ul>
</li>
<li class="leftMenuList"><a href="rollon#rln4ml">Roll On</a></li>
<li style="list-style: none; display: inline">
<ul class="leftMenuList2">
<li class="leftMenuList2"><a href="rollon#rln4ml">Glass</a></li>
</ul>
</li>
</ul>
Nie. Wrzucasz ten kod do LI, a dokładniej do elementów które chcesz podświetlić czyli nadać im klasę "active".
<li
<?php if($_GET['nazwaStrony']){echo 'class=active';} ?>>fooo</li>
Zakładam że wiesz co to jest nazwaStrony i dlaczego trzeba to zmienić.
kowalewski92
30.01.2013, 23:01:58
Nie wiem... wrzucam to tak jak piszesz i mi to nie działa...
Wrzuciłem do li ten fragment php i w css'ie odniosłem się do active.
Zobacz czym jest
GET oraz jak ją odbierać. Zamień ją na swoją jaką masz w linku index?strona=A itp.
kowalewski92
31.01.2013, 11:22:05
Ja nie miałem nic wspólnego z PHP, po prostu chce edytować istniejącą już stronę. Czy możesz mi dać po prostu gotowca? Wrzuciłem plik menu.php.
Mam to:
<li class="leftMenuList2"><a href="micro_round#m15ml">Micro</a></li>,
czyli z tego robię coś takiego:
<li <?php if($_GET['micro_round']){echo 'class=active';} ?>class="leftMenuList2"><a href="micro_round#m15ml">Micro</a></li>,
tak? Czy taka klasa leftMenuList2 musi zniknąć stamtąd? Nie mogę teraz tego sprawdzić czy działa bo nie mam takiej możliwości aktualnie.
w class może być kilka parametrów, czyli jak link jest aktywny to możesz zapisać "leftMenuList2 active". Wywal te kotwice.
<li class="leftcostam
<?php if(isset($GET['page']) AND
$GET['page'] == 'micro_round')){echo 'active'}?>">
Gdzie GET page to zmienna która jest u Ciebie w linku, pasek przeglądarki.
kowalewski92
31.01.2013, 12:45:26
Mhm, tylko u mnie na stronie jest tak, że jak wejdę w którąś zakładkę to jest dajmy na to: micro_round#a zmienisz zakładkę na tej podstronie to będzie micro_round#b czyli w page'u mogę dać micro_round? Żeby dla niego był active.
Zakładki zmieniasz na podstawie JS, czyli tak jak napisałem wyżej i nie ma prawa być wtedy żadnego przeładowania, chyba że napisałeś to źle. Pokaż kod.
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.