• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

menu class=current - jak to ogarnać?

Object Storage Arubacloud
0 głosów
721 wizyt
pytanie zadane 16 kwietnia 2015 w HTML i CSS przez Damianexo Obywatel (1,710 p.)

No cześć, to mam taki kod:

<div id="menu">
			<a href="index.php" class="current">MCRAK</a>
			<a href="#2" ><s>FORUM</s></a>
			<a href="rekrutacja.php">REKRUTACJA</a>
			<a href="#4">KONTAKT</a>
(i tam jeszcze coś z php)
</div>

Moje pytanie brzmi tak, jak zrobić, aby gdy kliknę w Forum- przeniesie mnie na FORUM to wtedy 'forum' bedzie zaznaczone, a gdy w REKRUTACJA to wtedy to będzie zaznaczone. Przykład: www.mcrak.pl <- tę stronę właśnie robie (na podstawie kursu Pana Mirka oraz swoich wcześniejszych planów).

4 odpowiedzi

+2 głosów
odpowiedź 16 kwietnia 2015 przez Carmack Bywalec (2,060 p.)
edycja 16 kwietnia 2015 przez Carmack
 
Najlepsza

Witaj,

Można pobrać URL strony, a następnie użyć instrukcji warunkowej przy ustawianiu klasy dla odpowiednich przycisków w menu.

Są nawet łatwiejsze metody.

Założmy, że ma Pan skrypty zaloguj.php oraz home.php. Wystarczy na samej górze skryptu dodać:

$activePage = "home"; - dla home.php

$activePage ="zaloguj"; - dla zaloguj.php

Następnie wystarczy przy każdym przycisku w menu dodać instrukcję typu:

<?php 

if($activePage == "sauna"){
echo 'class="active"';
}else{
echo '';
}
/*
Jeśli aktualna strona == np. "sauna" ustaw klasę active.
Musi Pan to zrobić w ten sposób, aby class="active" było w specyfikacji znacznika <a>
*/

 

komentarz 16 kwietnia 2015 przez Damianexo Obywatel (1,710 p.)

Cześć, jak wyglądałoby to w moim przypadku, gdzie mam osobne menu w 'header.php' a podstrony (content) to osobne pliki:

<div id="wrapper">
	<div id="header">
	<div id="logo"><img src="img/logo.png"></div>
		<div id="menu">
			<a href="index.php" class="current">MCRAK</a>
			<a href="#" ><s>FORUM</s></a>
			<a href="rekrutacja.php">REKRUTACJA</a>
			<a href="#"><s>KONTAKT</s></a>
<?php
if(!isset($_SESSION['zalogowany'])/*mozliwe jakies inne warunki do spelnienia*/){
echo '<a href="zaloguj.php">LOGOWANIE</a>'; // srednik na koncu

a sama rekrutacja.php wygląda tak:

<?php

	session_start();
	
	if (!isset($_SESSION['zalogowany']))
	{
		header('Location: zaloguj.php');
		exit();
	}
?>
<?php
	include('header.php');
?>
   
 <center><img src="img/rekru.png">
 <a href="#"><img src="img/apli2.png"></a></center>
<?php
	include('footer.php');
?>

 

komentarz 16 kwietnia 2015 przez Carmack Bywalec (2,060 p.)

rekrutacja.php

<?php
$currentPage = "rekrutacja";
?>

header.php

Dla buttonu REKRUTACJA powinno to wyglądać mniej-więcej tak:

<a href="rekrutacja.php" class="<?php if($currentPage=='rekrutacja'){
 	echo 'active';
 }else{
 	echo '';
 } 
 ?>">REKRUTACJA</a>

 

komentarz 16 kwietnia 2015 przez Dawid Sobieszczuk Mądrala (6,240 p.)
edycja 16 kwietnia 2015 przez Dawid Sobieszczuk
[...]
<?php
    $current = "rekrutacja";
    include('header.php');
?>
[...]

i

[...]
<a href="index.php" <?php if($current=="index") echo 'class="current"'; ?>>MCRAK</a>
<a href="#2" ><s>FORUM</s></a>
<a href="rekrutacja.php" <?php if($current=="rekrutacja") echo 'class="current"'; ?>>REKRUTACJA</a>
<a href="#4">KONTAKT</a>
[...]

 

komentarz 16 kwietnia 2015 przez Damianexo Obywatel (1,710 p.)

Okey, to działa! Ale np mam teraz oskryptowane (dla uprawnień) pewne rzeczy w menu, to jak wsadzić taki kod jak powyżej?

<a href="#4"><s>KONTAKT</s></a>
			
<?php
if(!isset($_SESSION['zalogowany'])/*mozliwe jakies inne warunki do spelnienia*/){
echo '<a href="zaloguj.php">LOGOWANIE</a>'; // srednik na koncu
} else {
echo '<a href="baza.php">BAZA DANYCH  </a>;
<a href="logout.php">WYLOGUJ</a>'; // srednik na koncu
}
?>
		</div>

Bo próbowałem to wstawić nawet w tych ' ' ale biała strona wtedy się wyświetla.

komentarz 17 kwietnia 2015 przez Dawid Sobieszczuk Mądrala (6,240 p.)
edycja 18 kwietnia 2015 przez Dawid Sobieszczuk
[...]
echo '<a href="zaloguj.php"';
if($current=="zaloguj") echo ' class="current"';
echo '>LOGOWANIE</a>';

[...]

echo '<a href="baza.php"';
if($current=="baza") echo ' class="current"';
echo '>BAZA DANYCH  </a>';
echo '<a href="logout.php">WYLOGUJ</a>';
[...]

 

Można to też zrobić w jednej echo. Jeśli jesteś zainteresowany tym rozwiązaniem wstarczy napisać. 

 

komentarz 18 kwietnia 2015 przez Damianexo Obywatel (1,710 p.)
Wybacz, że tak późno- ale wolne miałem.

Jakby się dało tak że dla zaloguj jedno echo, a dla baza jedno echo to byłoby super, choć to też nie jest złe, ale więcej kodu :P jak uważasz, jak jest bardziej praktyczniej i lepiej?
komentarz 18 kwietnia 2015 przez Dawid Sobieszczuk Mądrala (6,240 p.)
[...]
echo '<a href="zaloguj.php"'.($current=="zaloguj" ? ' class="current"' : '').'>LOGOWANIE</a>';
[...]
echo '<a href="baza.php"'.($current=="baza" ? ' class="current"' : '').'>BAZA DANYCH</a><a href="logout.php">WYLOGUJ</a>';
[...]

Dla mnie to rozwiązanie jest przyjemniejsze, ale przy nim łatwiej się pomylić i może trochę zająć zanim znajdziesz błąd.

 

+1 głos
odpowiedź 16 kwietnia 2015 przez joker Nałogowiec (31,150 p.)

musisz dodać atrybut active czyli:

#menu a:active
{
 background-color: //tutaj dodajesz kolor

}

Pozdrawiam serdecznie

komentarz 16 kwietnia 2015 przez Damianexo Obywatel (1,710 p.)
ale jak to zaimplementować na stronę kolego? Sam zobacz, że jak klikne w REKRUTACJA to kolor się zmieni- taki jaki jest ustawiony na current (jak się wchodzi do 'MCRAK' jest podkreślony pieknie, że teraz tam się znajdujemy).
+1 głos
odpowiedź 16 kwietnia 2015 przez Geek Pasjonat (19,660 p.)
Zainteresuj się AJAX'em, pozwoli Ci na przeładowywanie poszczególnych treści bez przeładowania całej strony + funkcja w javascript która przypisuje klasę wyróżniającą klikniętemu elementowi i zabierająca tą klasę elementowi wcześniej aktywnemu.
0 głosów
odpowiedź 16 kwietnia 2015 przez Dawid Sobieszczuk Mądrala (6,240 p.)
W jednym pliku html tego nie zrobisz(chyba że użyjesz javascript). W php możesz to zrobić przy użyciu instrukcji if(potrzebował być do tego przekazać coś w $_GET).
komentarz 16 kwietnia 2015 przez Dawid Sobieszczuk Mądrala (6,240 p.)

Lub każdy przycisk podpiąć do innego pliku i wtym pliku recznie zmienić class="current" do opowiedniego linku.

REKRUTACJA to plik zaloguj.php nie mam pojęcia co tam napisałeś ale jeśli jest tam to:

<div id="menu">
            <a href="index.php" class="current">MCRAK</a>
            <a href="#2" ><s>FORUM</s></a>
            <a href="rekrutacja.php">REKRUTACJA</a>
            <a href="#4">KONTAKT</a>
(i tam jeszcze coś z php)
</div>

to zmień to na:

<div id="menu">
            <a href="index.php">MCRAK</a>
            <a href="#2" ><s>FORUM</s></a>
            <a href="rekrutacja.php" class="current">REKRUTACJA</a>
            <a href="#4">KONTAKT</a>
(i tam jeszcze coś z php)
</div>

 

komentarz 16 kwietnia 2015 przez Damianexo Obywatel (1,710 p.)
Moja strona jest zincludowana. rekrutacja to rekrutacja, baza to baza, index to index, a menu znajduje się w lincludzie 'header.php'.

 

Wiec nie ma innej opcji?
komentarz 16 kwietnia 2015 przez Dawid Sobieszczuk Mądrala (6,240 p.)
Potrzebujesz jakoś przekazać do menu na jakie stronie aktualnie się znajduje. Musze coś sprawdzić. Jak coś wymyśle napisze później.

Podobne pytania

+2 głosów
3 odpowiedzi 208 wizyt
pytanie zadane 16 lutego 2017 w C i C++ przez Patryk Krajewski Nałogowiec (26,170 p.)
0 głosów
4 odpowiedzi 392 wizyt
pytanie zadane 2 kwietnia 2016 w HTML i CSS przez ArturToJa Nowicjusz (180 p.)
0 głosów
2 odpowiedzi 191 wizyt
pytanie zadane 15 listopada 2015 w JavaScript przez human122 Nowicjusz (140 p.)

92,573 zapytań

141,423 odpowiedzi

319,648 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...