PHP Navigations färg på aktiv länk.

Permalänk
Medlem

PHP Navigations färg på aktiv länk.

Tjena,

Har en PHP fil om heter navi.php , filen innehåller detta,

<ul id="navi"> <li class="first"><a href="index.php">HOME</a></li> <li><a href="archive.php">ARCHIVE</a></li> <li><a href="contact.php">CONTACT</a></li> <li class="last"><a href="about.php">ABOUT</a></li> </ul>

sen kör jag

<?php require("navi.php");?>

i filerna som ska ha tillgång till navigations menyn, om jag nu vill att länken som
man tryck på ska få en annan färg en restan av länkarna, hur gör jag då?

Om jag kört navi.php koden direkt i filerna så kan man ju tex lägga till detta

<span class="active">HOME</span>

i index filen.

Någon som vet hur jag kan göra?

Visa signatur

Workstation: | Gigabyte GA-P55-UD3 | Intel Core i5 4.0GHz | Nvidia 240GT Zone Edition | Chieftec Super Series 650W | Seagate Barracuda 7200.12 500GB | Fractal Design Define R2 | Ubuntu 10.10 |

Permalänk
Medlem

Använd GET till det. Så är du på sidan home så ska det vara

<?php require("navi.php?page=home");?>

Sen vad du ska göra i navi.php är ju inte så svårt att lista ut...

Permalänk
Medlem
Skrivet av simonh94:

Använd GET till det. Så är du på sidan home så ska det vara

<?php require("navi.php?page=home");?>

Sen vad du ska göra i navi.php är ju inte så svårt att lista ut...

Hehe, har precis börjat med PHP så är inte så duktig än... Om du har lust och orkar får du gärna förklara lite mer utförligt.

Visa signatur

Workstation: | Gigabyte GA-P55-UD3 | Intel Core i5 4.0GHz | Nvidia 240GT Zone Edition | Chieftec Super Series 650W | Seagate Barracuda 7200.12 500GB | Fractal Design Define R2 | Ubuntu 10.10 |

Permalänk
Medlem

Jag tror han menar dynamic paging. Du kan kolla på mitt news.php

Jag har news.php och om jag har nåt kan jag lägga i folder och få fram news.php?article=WTFFFFFFFFFFFF
istället för att göra wtffffffff.php så gör du

<?php

$article = $_GET['article'];
if ($article)
{
include("article/".$article.".php");
}
else
{
echo "<p>Website is currently under construction so it might be errors and stuff.</p>";
}
?>

Annars kan du göra

index.php = hem
downloads.php
news.php

sedan folder och sedan använde php require.

<?php include("menu/index.php"); ?> // elller typ menu/minegnafil.php
<div id="content">
<!-- insert the page content here -->
<h1>Home Section</h1>
<p>Website is currently under construction so it might be errors and stuff.</p>
</div>
</div>
<?php include("menu/footer.php"); ?>
<div id="content_footer"></div>
<div id="footer">

<p>Copyright © ServerSiter</p>
</div>
</div>
</body>
</html>

Permalänk
Medlem

Typ:

//i navi.php <ul id="navi"> <li class="first <?=isset($_GET['home'])?"active":"inactive"?>"><a href="index.php">HOME</a></li> <li class="<?=isset($_GET['archive'])?"active":"inactive"?>"><a href="archive.php">ARCHIVE</a></li> <li class="<?=isset($_GET['contact'])?"active":"inactive"?>"><a href="contact.php">CONTACT</a></li> <li class="last <?=isset($_GET['about'])?"active":"inactive"?>"><a href="about.php">ABOUT</a></li> </ul> //i filen som skall ha menyn <?php require("navi.php?home=aktiv");?> //eller för att aktivera arkiv.. o.s.v. <?php require("navi.php?archive=aktiv");?> //sedan kan du ju aktivera två stycken <?php require("navi.php?archive=aktiv&contact=aktiv");?>

Det går att lösa på många flera sätt

Skickar du iväg en ?asdsad=123&asd=123123123 i URL:en så lagras dessa i vektorn $_GET ..
?asd=123
ger:
$_GET['asd']=123

?asdsad=123&asd=123123123
skulle alltså ge värdena:
$_GET['asdasd']=123
$_GET['asd']=123123123

<?= ?> är shorttags (vilket är en historia och en diskussion för sig)
? : är villkorsoperator
"asd" är en sträng
isset() är en funktion som kollar om värdet är inte NULL (vilket osätta variabler har)

EDIT:
Förresten, är class="" giltig html ? Det borde det väl vara...?

Visa signatur

citera!

Permalänk

<ul id="navi"> <?php $pages = array('home', 'archive', 'contact', 'about'); // array med sidor till menyn $p = isset($_GET['p']) ? $_GET['p'] : $pages[0]; // plats 0 i arrayen blir default foreach($pages as $page) { // loopar ut menyn $active = $p == $page ? 'active' : null; // class="active" på rätt menylänk echo('<li><a class="'.$active.'" href="?p='.$page.'">'.$page.'</a></li>'); } ?> </ul> <div id="content"> <?php if(in_array($p, $pages)) require('pages/'.$p.'.php'); // inkluderar rätt php-fil ?> </div>