Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [php] Jak zrobić podkreślenie oglądanego linku?
harbii
post 12.10.2006, 20:19:20
Post #1





Grupa: Zarejestrowani
Postów: 311
Pomógł: 1
Dołączył: 27.05.2006

Ostrzeżenie: (0%)
-----


Witam!
Chciałbym zrobić coś takiego:
Mamy:

Link1 * Link2 * Link3 * Link4

Chciałbym aby po kliknieciu np Link2 (otwiera się stronka) i linki wyglądają tak:

Link1 * Link2 * Link3 * Link4

Jeżeli wybiore sobie np link4 to mamy:

Link1 * Link2 * Link3 * Link4


Czyli jak zrobić aby w "menu" z linkami był podreślany link z którego aktualnie oglądana jest stronka?
Oczywiście po przejściu na inny link podkreślony jest tylko ten na który prześliśmy (tak jak w przykładzie).

Ten post edytował harbii 17.10.2006, 17:40:44
Go to the top of the page
+Quote Post
batman
post 12.10.2006, 20:28:31
Post #2





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




http://www.w3schools.com/css/css_pseudo_classes.asp


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
siemakuba
post 13.10.2006, 18:02:42
Post #3





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

Ostrzeżenie: (0%)
-----


Nie, nie chodzi tu o pseudoklasy hover, active itp.
Musisz jakoś wiedzieć na której jesteś podstronie. Załóżmy, że zrobisz sobie zmienną, która będzie przechowywała informacje o aktualnej oglądanej stronie.
  1. <?php
  2. $page = 'strona2';
  3. ?>

Teraz, musisz nadać linkowi odpowiadającemu tej stronie odpowiednia klasę.
  1. <?php
  2. echo '<a href="#" class="'.($page == 'strona1' ? 'current' : 'normal').'">Link 1</a>';
  3. echo '<a href="#" class="'.($page == 'strona2' ? 'current' : 'normal').'">Link 2</a>';
  4. echo '<a href="#" class="'.($page == 'strona3' ? 'current' : 'normal').'">Link 3</a>';
  5. ?>

Na koniec, nadajesz klasie "current" odpowiedni styl:
  1. A.current {
  2. text-decoration:underline;
  3. }

pozdr.
Go to the top of the page
+Quote Post
Lee
post 13.10.2006, 19:04:12
Post #4





Grupa: Zarejestrowani
Postów: 319
Pomógł: 0
Dołączył: 11.04.2006
Skąd: Chojnów

Ostrzeżenie: (0%)
-----


Kod
a.active {
    text-decoration: underline;
}

nie działa ?


--------------------
Nie pomagam w sprawach php na GG i PW od tego jest forum!
Go to the top of the page
+Quote Post
batman
post 13.10.2006, 20:15:06
Post #5





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Cytat
Musisz jakoś wiedzieć na której jesteś podstronie. Załóżmy, że zrobisz sobie zmienną, która będzie przechowywała informacje o aktualnej oglądanej stronie.


Po co zmienna? $_SERVER - tam jest wszystko co potrzeba. Po za tym jestem pewien, że pseudo klasy powinny sobie z tym poradzić.

Ten post edytował batman 13.10.2006, 20:15:25


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
harbii
post 13.10.2006, 22:46:54
Post #6





Grupa: Zarejestrowani
Postów: 311
Pomógł: 1
Dołączył: 27.05.2006

Ostrzeżenie: (0%)
-----


hmmm zaden pomysł nie działa
@siemakuba - może twój jest ok. ale co gdziw powklejac bo niebardzo mi to działa. Może coś źle robie.
Podaj wersje dla totalnego laika. gdzie co wkleić na które podstrony jaki kod
ja zrobułem w menu.php
  1. <?php
  2. echo '<a href="#" class="'.($page == 'strona1' ? 'current' : 'normal').'">Link 1</a>';
  3. echo '<a href="#" class="'.($page == 'strona2' ? 'current' : 'normal').'">Link 2</a>';
  4. echo '<a href="#" class="'.($page == 'strona3' ? 'current' : 'normal').'">Link 3</a>';
  5. ?>

w style.css
  1. A.current {
  2. text-decoration:underline;
  3. }

i w np index.php
  1. <?php
  2. $page = 'strona1';
  3. ?>

itd z s2 s3

ale tak nie działa.
HELP!
Go to the top of the page
+Quote Post
siemakuba
post 14.10.2006, 08:51:46
Post #7





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

Ostrzeżenie: (0%)
-----


@harbii: możesz pokazać troszkę więcej (jakikolwiek) kodu - jak i gdzie ustawiasz zmienne, jak pokazujesz.

@batman: masz rację, jest tablica $_SERVER, ale wydaje mi się, że dla laika prościej będzie ustawić kilka zmiennych i z nich korzystać niż grzebać w tabjemniczej tablicy $_SERVER i dochodzić co w niej jest.

Cytat
Po za tym jestem pewien, że pseudo klasy powinny sobie z tym poradzić.
Moja pewność jest zupełnie odwrotna. Nie wydaje mi się, żeby CSS wiedział jaką stronę aktualnie przeglądasz :) Pseudoklasa :active uruchamia się zdaje się w momencie kliknięcia na link, prawda? Po tym kliknięciu jesteś już na kolejnej podstronie.

pozdr.
Go to the top of the page
+Quote Post
batman
post 14.10.2006, 09:07:35
Post #8





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Cytat
masz rację, jest tablica $_SERVER, ale wydaje mi się, że dla laika prościej będzie ustawić kilka zmiennych i z nich korzystać niż grzebać w tabjemniczej tablicy $_SERVER i dochodzić co w niej jest.


Wydaje mi się, że lepiej od samego początku uczyć się poprwnie programować, niż kombinować jak koń pod górkę. Co do styli, to moja pewność nieco zmalała winksmiley.jpg


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
phpion
post 14.10.2006, 09:13:48
Post #9





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




a:active zadziala ale tylko w ramkach. Przy przeladowaniu strony nie bedzie dzialac. Moze zrobic to tak:
  1. .aktywny {
  2. font-weight: bold;
  3. }
  4. .normalny {
  5. font-weight: normal;
  6. }

  1. <?php
  2. $pages = Array(1 => "Strona glowna", "Druga strona", "Trzecia strona");
  3.  
  4. $page = (isset($_GET['page'])) ? $_GET['page'] : 1;
  5.  
  6. foreach ($pages as $index => $value)
  7. {
  8. $class = ($index == $page) ? 'aktywny' : 'normalny';
  9.  
  10. echo '<a href="index.php?page='.$index.'" class="'.$class.'">'.$value.'</a> ';
  11. }
  12. ?>

W sumie nie sprawdzalem ale powinno byc ok.
Go to the top of the page
+Quote Post
s_w_ir
post 14.10.2006, 11:26:50
Post #10





Grupa: Zarejestrowani
Postów: 315
Pomógł: 1
Dołączył: 6.08.2003
Skąd: Kielce

Ostrzeżenie: (0%)
-----


To co podam poniżej działa dzięki temu że body każdej strony ma inne id. Tzn dzięki id wiadomo która zakładka ma być wyrózniona.

http://forum.php.pl/index.php?showtopic=52...mp;#entry287981
Go to the top of the page
+Quote Post
harbii
post 14.10.2006, 12:16:19
Post #11





Grupa: Zarejestrowani
Postów: 311
Pomógł: 1
Dołączył: 27.05.2006

Ostrzeżenie: (0%)
-----


po testach i małych przeróbkach działa sposób @siemakuba
ALE
nie działa jeżeli wszystko wrzucam przez index.php.

Czyli jeżeli napisze to tak:

start.php
  1. <LINK rel="stylesheet" href="tlo.css" type="text/css">
  2. <?php
  3. $page = 'strona1';
  4. ?>
  5. <?php
  6. echo '<a href="start.php" class="'.($page == 'strona1' ? 'current' : 'normal').'">start<br></a>';[php]
  7. echo '<a href="strona2.php" class="'.($page == 'strona2' ? 'current' : 'normal').'">Link 2<br></a>';
  8. echo '<a href="kontakt.php" class="'.($page == 'strona3' ? 'current' : 'normal').'">Link 3<br> </a>';
  9. ?>
  10.  
  11. START


strona2.php
  1. <LINK rel="stylesheet" href="tlo.css" type="text/css">
  2. <?php
  3. $page = 'strona2';
  4. ?>
  5. <?php
  6. echo '<a href="start.php" class="'.($page == 'strona1' ? 'current' : 'normal').'">start<br></a>';
  7. echo '<a href="strona2.php" class="'.($page == 'strona2' ? 'current' : 'normal').'">Link 2<br></a>';
  8. echo '<a href="kontakt.php" class="'.($page == 'strona3' ? 'current' : 'normal').'">Link 3<br> </a>';
  9. ?>
  10.  
  11. STRONA2


kontakt.php
  1. <LINK rel="stylesheet" href="tlo.css" type="text/css">
  2. <?php
  3. $page = 'strona3';
  4. ?>
  5. <?php
  6. echo '<a href="start.php" class="'.($page == 'strona1' ? 'current' : 'normal').'">start<br></a>';
  7. echo '<a href="strona2.php" class="'.($page == 'strona2' ? 'current' : 'normal').'">Link 2<br></a>';
  8. echo '<a href="kontakt.php" class="'.($page == 'strona3' ? 'current' : 'normal').'">Link 3<br> </a>';
  9. ?>
  10.  
  11. KONTAKT


tlo.css
  1. BODY { background-color:#000000; font-size:10; color:#CCCCCC; font-family:Arial, Helvetica, sans-serif}
  2. A{color: ffffff; text-decoration:inherit; text-decoration: none; font-size:12; font-family:Arial, Helvetica, sans-serif}
  3. A:hover{color: #ffffff; font-size:12; text-decoration:underline; font-family:Arial, Helvetica, sans-serif}
  4. table { background-color:#000000; font-size:13; color:#CCCCCC; font-family:Arial, Helvetica, sans-serif}
  5. A.current {
  6. text-decoration:underline;
  7. }


TO DZIAŁA!!! aarambo.gif

ale nie o to chodzi smile.gif nie poto robie tą stronke w php aby każdą osobno pisać

Ja bym chciał ayby działało to tak:

tlo.css
  1. BODY { background-color:#000000; font-size:10; color:#CCCCCC; font-family:Arial, Helvetica, sans-serif}
  2. A{color: ffffff; text-decoration:inherit; text-decoration: none; font-size:12; font-family:Arial, Helvetica, sans-serif}
  3. A:hover{color: #ffffff; font-size:12; text-decoration:underline; font-family:Arial, Helvetica, sans-serif}
  4. table { background-color:#000000; font-size:13; color:#CCCCCC; font-family:Arial, Helvetica, sans-serif}
  5. A.current {
  6. text-decoration:underline;
  7. }


menu.php
  1. <?php
  2. echo '<a href="index.php?srodek=start.php" class="'.($page == 'strona1' ? 'current' : 'normal').'">start<br></a>';
  3. echo '<a href="index.php?srodek=strona2.php" class="'.($page == 'strona2' ? 'current' : 'normal').'">Link 2<br></a>';
  4. echo '<a href="index.php?srodek=kontakt.php" class="'.($page == 'strona3' ? 'current' : 'normal').'">Link 3<br> </a>';
  5. ?>




start.php
  1. <?php
  2. $page = 'strona1';
  3. ?>
  4.  
  5.  
  6. START


kontakt.php
  1. <?php
  2. $page = 'strona3';
  3. ?>
  4.  
  5.  
  6. KONTAKT


strona2.php
  1. <?php
  2. $page = 'strona2';
  3. ?>
  4.  
  5.  
  6. STRONA2


A WSZYSTKO IDZIE PRZEZ INDEX.php

index.php
  1. <LINK rel="stylesheet" href="tlo.css" type="text/css">
  2.  
  3. <?php
  4. include ('menu.php')
  5. ?><br />
  6. <br />
  7. <?php
  8.  
  9.  
  10. if (isset($_GET['srodek']))
  11. {
  12. $srodek=$_GET['srodek'];
  13. include("./$srodek");
  14. }
  15. else
  16. { 
  17. include('./start.php');
  18. }
  19.  
  20. ?>



A w ten sposób nie działa sad.gif Myśl @siemakuba jest dobra ale teraz pomóżcie w przerobieniu to aby działoło to przez includy w index.php

blink.gif
Go to the top of the page
+Quote Post
siemakuba
post 14.10.2006, 12:29:38
Post #12





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

Ostrzeżenie: (0%)
-----


Bo, skoro robisz to tak, to wszystko jets proste. Zamiast tworzyć zmienne tak jak pokazałem możesz użyć tego co już masz, czyli zmiennych w $_GET, bo na ich podstawie pokazujesz cokolwiek w środku.

Plik menu.php:
  1. <?php
  2. echo '<a href="start.php" class="'.($_GET['srodek'] == 'strona1' ? 'current' : 'normal').'">start<br></a>';
  3. echo '<a href="strona2.php" class="'.($_GET['srodek'] == 'strona2' ? 'current' : 'normal').'">Link 2<br></a>';
  4. echo '<a href="kontakt.php" class="'.($_GET['srodek'] == 'strona3' ? 'current' : 'normal').'">Link 3<br> </a>';
  5. ?>

Oczywiście zamiast strona1, strona2 itd. podstaw swoje wartości.

pozdr.
Go to the top of the page
+Quote Post
harbii
post 14.10.2006, 12:37:46
Post #13





Grupa: Zarejestrowani
Postów: 311
Pomógł: 1
Dołączył: 27.05.2006

Ostrzeżenie: (0%)
-----


wywala teraz

Notice: Undefined index: srodek in d:\easyphp1-8\easyphp1-8\www\t\menu.php on line 2
start

Notice: Undefined index: srodek in d:\easyphp1-8\easyphp1-8\www\t\menu.php on line 3
Link 2

Notice: Undefined index: srodek in d:\easyphp1-8\easyphp1-8\www\t\menu.php on line 4
Link 3


START
Go to the top of the page
+Quote Post
phpion
post 14.10.2006, 12:54:40
Post #14





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Moze sprobuj przetestowac to, co ja napisalem? Moje dziala na pewno.
Go to the top of the page
+Quote Post
siemakuba
post 14.10.2006, 13:50:34
Post #15





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

Ostrzeżenie: (0%)
-----


O ranny rany...
kurcze, trzeba jeszcze by sprawdzić skąd się bierze taki Notice, ale to już nie proste.. eh...
Undefined Index = nie w tablicy $_GET klucza 'srodek'. W kodzie, który pokazałeś masz sprawdzanie tego, uznałem że dalej sobie poradzisz.

Zrób tak:
  1. <?php
  2. $page = isset($_GET['srodek']) ? $_GET['srodek'] : '');
  3.  
  4. echo '<a href="start.php" class="'.($page == 'strona1' ? 'current' : 'normal').'">start<br></a>';
  5. echo '<a href="strona2.php" class="'.($page == 'strona2' ? 'current' : 'normal').'">Link 2<br></a>';
  6. echo '<a href="kontakt.php" class="'.($page == 'strona3' ? 'current' : 'normal').'">Link 3<br> </a>';
  7. ?>


pozdr.
Go to the top of the page
+Quote Post
harbii
post 15.10.2006, 11:05:49
Post #16





Grupa: Zarejestrowani
Postów: 311
Pomógł: 1
Dołączył: 27.05.2006

Ostrzeżenie: (0%)
-----


@siemakuba
coś to nie działa sad.gif, w drugiej linie jest błąd, coś chyba z nawiasami.

@phpion.com
to działa. tylko podpowiedz mi gdzie wpisać linki do podstron?
Go to the top of the page
+Quote Post
siemakuba
post 15.10.2006, 12:36:53
Post #17





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

Ostrzeżenie: (0%)
-----


@harbii: osłabiasz mnie... gdybyś trochę pomyślał a nie oczwkiwał gotowego rozwiązania wszystko by działało. Fakt, zgubiłem jeden nawias, ale powinieneś to zauważyć, tymbardziej, że dostałeś info o błędzie.
  1. <?php
  2. $page = isset($_GET['srodek']) ? $_GET['srodek'] : '';
  3. ?>

To jest poprawiona linia 2. Z mojej strony EOT, dopuki nie wykażesz inicjatywy.

pozdr.

Ten post edytował siemakuba 15.10.2006, 12:37:29
Go to the top of the page
+Quote Post
harbii
post 16.10.2006, 10:19:55
Post #18





Grupa: Zarejestrowani
Postów: 311
Pomógł: 1
Dołączył: 27.05.2006

Ostrzeżenie: (0%)
-----


jakbym się tak dobrze znał na php to bym poprawiał błędy, ale ja niestety się dopiero uczę php

po twojej poprawce niestety nadal nie działa.

pomysł @phpion.com działa
tylko nie wiem jak wpisac linki

Ten post edytował harbii 16.10.2006, 10:26:04
Go to the top of the page
+Quote Post
lopik
post 16.10.2006, 11:16:06
Post #19





Grupa: Zarejestrowani
Postów: 340
Pomógł: 0
Dołączył: 7.07.2006

Ostrzeżenie: (0%)
-----


Do skryptu: phpion.com

Jeśli dobrze to rozumiem, to dopisujesz je do tablicy:
Przecinek, i w nawiasie nazwa linka.

  1. <?php
  2. $pages = array(1 => "Strona glowna", "Druga strona", "Trzecia strona", "Strona Czwarta");
  3. ?>


Ale pewno nie rozumiem tego winksmiley.jpg

Ten post edytował lopik 16.10.2006, 11:17:15


--------------------
w3c & c++
Go to the top of the page
+Quote Post
harbii
post 16.10.2006, 11:23:02
Post #20





Grupa: Zarejestrowani
Postów: 311
Pomógł: 1
Dołączył: 27.05.2006

Ostrzeżenie: (0%)
-----


no ok.
ale gdzie wpisać linki?
bo jak skopiuje <a ....
to dublują sie i mam
Strona glowna Druga strona Trzecia strona Strona glowna Druga strona Trzecia strona

Ten post edytował harbii 16.10.2006, 11:47:36
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.06.2025 - 03:20