Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][CSS] Active link. Uzyskanie efektu.
Forum PHP.pl > Forum > Przedszkole
ciepolml
Witam ponownie. Mam nie wiem czy dziwne, ale mam pytanie. Dokładnie nie znam się na pisaniu php, uzywam gotowych rozwiązań które wcielam w moją pracę. Ale ostatnio męczy mnie pewne zagadnienie które ułatwiłoby mi pracę:)

Otóż pracuję nad stronką www.neatgroup.pl/Audimas_new
Sprawa wygląda tak:

- do ładowania stron w <div id="text"> uzywam

CODE

<?php

$go = $_GET['go'];


if(!empty($go)) {

if(is_file("page/$go.php")) include "page/$go.php";

else echo "<br />Przepraszamy - strona nie istnieje.";
}

else include "page/start.php";

?>


i tam oczywiście zmieniają się includowane strony, powyżej jednak (w index.php) znajduje się menu opisane CSS (które jest widoczne cały czas) które podmienia tło pod danym obrazkiem po najechaniu

CODE

a.firma {
border:0;
display:block;
width:62px;
height:44px;
background: url(img/firma.gif) 0 0 no-repeat;}

a.firma:hover{
background-position: 0 -44px;}


Moje pytanie brzmi. Jak to wszystko połączyć aby uzyskać efekt :active? W sensie aby po najechaniu np. na link "firma" podswietlil się on na czerowno, czyli ta zamiana obrazków z CSS, a po wejsciu w ten link w menu został powiedzmy ten obrazek. Aby gdy jestem w "firma" link firma zosta czerwony.

Widziałem takie rozwiązania w joomla i na wielu innych stronach, ale zastanawiam się czy w układzie jaki mam (to includowanie + CSS) jest to jakoś możliwe do zrobienia czy wogóle trzeba by inaczej do includowania stron podejść.
Proszę o podpowiedzi.
Babcia@Stefa
Jeśli chodzi o kod PHP to dla bezpieczeństwa zmień go na:

  1. <?php
  2.  
  3. $go = addslashes($_GET['go']);
  4.  
  5.  
  6. if(!empty($go)) {
  7.  
  8. if(is_file("page/$go.php")) include "page/$go.php";
  9.  
  10. else echo "<br />Przepraszamy - strona nie istnieje.";
  11. }
  12.  
  13. else include "page/start.php";
  14.  
  15. ?>


Co do reszty to spróbuj użyć javascriptu, ale być może da się to rozwiązać w CSS.
n30
ja robie to czasem tak:
2 klasy w css np: normalny, aktywny

w php funkcja

  1. <?php
  2. function klasa ($page,$current_page) {
  3.  
  4. if ($page==$current_page) {
  5. return "aktywny";
  6. }
  7. else 
  8. {
  9. return "normalny";
  10. }
  11.  
  12. }
  13. ?>



i pozniej
  1. <a class=<? klasa("linki",$curent_page);?> href=index.php?page=linki>linki </a>



+- tak pisalem z reki wiec nie recze ze dziala.

Btw to inludowania stron milo zrobic filter usuwajacy znaki np / lub . itp...
ciepolml
dzieki Babcia@Stefa za kod.

No ok, ale czy jak jest to rozwiązane w ten sposób to rozpozna current_page, skoro menu jest w index? nie wiem, ale sprawdze.
Dzieki.

A co do java script, nie jestem zwolennikiem do takich prostych rzeczy, pozniej problemy z walidacją .. itp.
Gość
pod $current_page podstawiasz $_GET['go'];
a w cudzyslowy wpisujesz to co masz podane w linku to co po kliniecu ma byc $go.

czyli np <a href=index.php?go=sex
to class=<? echo klasa("sex",$go);?>



w poscie wyzej nie ma echo przed klasa...
To powinno juz Ci calkowicie rozjasnic sprawe.

Pozdro
Babcia@Stefa
  1. <?php
  2. $linki = array('pierwszy' => 'pierwszy.php', 'drugi' => 'jakis.php');
  3.  
  4. foreach ($linki as $key => $value)
  5. {
  6. if($key == $_GET['page'])
  7. $HTML .= '<a href="?page=' .$key. '"><b>' .$key. '</b></a>';
  8. else 
  9. $HTML .= '<a href="?page=' .$key. '">' .$key. '</a>';
  10. }
  11. echo $HTML;
  12. ?>


Chyba o to chodziło smile.gif

@edit
Człowkieku co ty masz w kodzie PHP?!

http://www.neatgroup.pl/Audimas_new/index....#46;./index

Nieskończona pętla biggrin.gif

Jeśli chcesz mogę Ci pomóc w pisaniu kodu PHP na Twojej stronie smile.gif

@edit
Wrzuć do folderu page plik .htaccess o treści:

Kod
deny from all


Ty robisz na zamówienie?
Nie sądze aby Twoja strona była bezpieczna...

Dziękuję, Babcia@Stefa
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.