• 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ć?

VPS Starter Arubacloud
0 głosów
697 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 201 wizyt
pytanie zadane 16 lutego 2017 w C i C++ przez Patryk Krajewski Nałogowiec (26,170 p.)
0 głosów
4 odpowiedzi 389 wizyt
pytanie zadane 2 kwietnia 2016 w HTML i CSS przez ArturToJa Nowicjusz (180 p.)
0 głosów
2 odpowiedzi 187 wizyt
pytanie zadane 15 listopada 2015 w JavaScript przez human122 Nowicjusz (140 p.)

92,451 zapytań

141,261 odpowiedzi

319,073 komentarzy

61,853 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...