---
title: "PHP-MENY"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/132378-php-meny"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "nummersju"
published: "2005-08-07T00:41:46.000Z"
updated: "2005-08-10T20:21:30.000Z"
replies: 13
views: 805
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/132378-php-meny"
---

# PHP-MENY

## #1 — nummersju, 2005-08-07T00:41Z

Jag skulle vilja ha lite hjälp med en php meny som gör att när jag är på en sida så ska den vara "aktiv" i menyn.

Alltså om jag har en färg på länkarna i menyn, vi säger blå, så vill jag att när man är på just den sidan man just klickade sig in på så är den röd, tills man byter sida då den blir röd osv...

Ni kan kolla [Gonace.com](http://www.gonace.com) . Där finns ett praktexempel, hans meny är dock i asp, så jag kunde inte få hjälp av honom...

Tack på förhand :)

Permalänk: https://www.webforum.nu/p/132378

## #2 — Patrik81, 2005-08-07T09:42Z

Hejsan :)

Om man i en fil, som man sedan inkluderar på varje sida, lägger en array innehållandes typ index.php, guestbook.php etc. alla sidor man vill skall visas i navbaren, så skulle man ju sedan med en foreach loop kunna loopa ut alla dessa poster, och lägga till html-länkar runt värdena, och i loopen ha en if-sats som kollar om posten som nu skall skrivas ut, är detsamma som filens namn, som just nu anropats, och är det så, så skriver man istället ut en \<span class="red"\>\</span\> runt posten.

Då blir alla andra värden länkar, och värdet som pekar på den sida man är på blir rött istället, om man nu har definerat upp en css-klass som gör den röd :)

Detta är nog ett tämligen enkelt sätt att göra det på, även om det säkert kan finnas mer optimala sätt att göra det på. Det är lite för mycket söndag, och skallebank, för att jag skall våga komma med någon exempelkod, men nu har du ju teorin iaf. :)

MVH Patrik

Permalänk: https://www.webforum.nu/p/1654474

## #3 — nummersju, 2005-08-07T13:27Z

Min kod ser ut såhär!

```
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>yea</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>

<body>
<div id="content">

<? if ($_GET['part'] == "höjdhopp") { ?> 
		höjdhopp<br>

		<? } elseif ($_GET['part'] == "spjut") { ?> 
		spjut<br>

		<? } elseif ($_GET['part'] == "längdhopp") { ?> 
		längdhopp<br>

		<? } elseif ($_GET['part'] == "kula") { ?> 
		kula<br>

		<? } elseif ($_GET['part'] == "800m") {  ?> 
		800m<br>
		
		<? } elseif ($_GET['part'] == "200m") {  ?> 
		200m<br>

		<? } elseif ($_GET['part'] == "heck") {  ?> 
		häck<br>
		
		<?  } else { ?> 
		sjukamp<br>
		
		<? } ?>

	<div id="meny">
		<ul class="meny">
			<li><a href="index.php">sjukamp</a></li>
			<li><a href="index.php?part=höjdhopp">höjdhopp</a></li>
			<li><a href="index.php?part=spjut">spjut</a></li>
			<li><a href="index.php?part=längdhopp">längdhopp</a></li>
			<li><a href="index.php?part=kula">kula</a></li>
			<li><a href="index.php?part=800m">800m</a></li>
			<li><a href="index.php?part=200m">200m</a></li>
			<li><a href="index.php?part=heck">100m häck</a></li>
		</ul>
	</div>
</div>
</body>
</html>
```

Hur ska jag göra för att fixa det där med "aktiva" länkar då? jag är inte så haj på php, menyscriptet är tagit från gruvsjö....

[Så här ser det ut](http://nummersju.net/css/meny/testa2/index.php)

Permalänk: https://www.webforum.nu/p/1654531

## #4 — silfver, 2005-08-07T13:39Z

```php
<li><a href="#" <?=$sidnamn; ?>>länk</a></li>
```

```php
$sidnamn = 'id="active"';
```

Så gör jag. Smidigt? Jag tycker det. :)

Permalänk: https://www.webforum.nu/p/1654535

## #5 — aasah, 2005-08-07T19:36Z

> **silfver skrev:**
>
> ```php
> <li><a href="#" <?=$sidnamn; ?>>länk</a></li>
> ```
>
>
>
> ```php
> $sidnamn = 'id="active"';
> ```
>
> Så gör jag. Smidigt? Jag tycker det. :)

Va? Det där funkar väl inte om du alltid ska ha, tex länkarna
Hem, Nyheter, Info, Gästbok och du vill att de tre du inte står på ska vara blå och den fjärde röd? Hur ser du till att de alltid dyker upp i samma ordning med rätt färg på alla sidor?  :q 

Är det inte det nummersju vill?

Permalänk: https://www.webforum.nu/p/1654641

## #6 — silfver, 2005-08-07T19:46Z

> **aasah skrev:**
>
> > **silfver skrev:**
> >
> > ```php
> > <li><a href="#" <?=$sidnamn; ?>>länk</a></li>
> > ```
> >
> >
> >
> > ```php
> > $sidnamn = 'id="active"';
> > ```
> >
> > Så gör jag. Smidigt? Jag tycker det. :)
>
> Va? Det där funkar väl inte om du alltid ska ha, tex länkarna
> Hem, Nyheter, Info, Gästbok och du vill att de tre du inte står på ska vara blå och den fjärde röd? Hur ser du till att de alltid dyker upp i samma ordning med rätt färg på alla sidor?  :q 
> 
> Är det inte det nummersju vill?

Man får ju ha php-koden på varje sida man har. Sen så får man ju leka med css också.

Permalänk: https://www.webforum.nu/p/1654644

## #7 — aasah, 2005-08-07T19:58Z

> **silfver skrev:**
>
> > **aasah skrev:**
> >
> > > **silfver skrev:**
> > >
> > > ```php
> > > <li><a href="#" <?=$sidnamn; ?>>länk</a></li>
> > > ```
> > >
> > >
> > >
> > > ```php
> > > $sidnamn = 'id="active"';
> > > ```
> > >
> > > Så gör jag. Smidigt? Jag tycker det. :)
> >
> > Va? Det där funkar väl inte om du alltid ska ha, tex länkarna
> > Hem, Nyheter, Info, Gästbok och du vill att de tre du inte står på ska vara blå och den fjärde röd? Hur ser du till att de alltid dyker upp i samma ordning med rätt färg på alla sidor?  :q 
> > 
> > Är det inte det nummersju vill?
>
> Man får ju ha php-koden på varje sida man har. Sen så får man ju leka med css också.

Jo, alltså, så långt är jag med. Men hur ser då resten av dina länkar ut?

Permalänk: https://www.webforum.nu/p/1654651

## #8 — silfver, 2005-08-07T20:04Z

För att ta mitt exempel så ser min meny ut så här: 

```php
		<li><a href="/"<?=$startsida; ?>>start</a></li>
		<li><a href="/filmer/"<?=$filmer; ?>>filmer</a></li>
		<li><a href="/bilder/"<?=$bilder; ?>>bilder</a></li>
		<li><a href="/lasvart/"<?=$lasvart; ?>>läsvärt</a></li>
		<li><a href="/kontakt/"<?=$kontakt; ?>>kontakt</a></li>
		<li><a href="/gastbok/"<?=$gastbok; ?>>gästbok</a></li>
```

 Förstår du hur jag gör nu? Vet inte riktigt hur jag ska förklara? :)

Permalänk: https://www.webforum.nu/p/1654654

## #9 — silfver, 2005-08-09T18:08Z

Tja nummersju. Jag har gjort en meny till dig nu.

Bilagor:

- [php-meny.rar](https://www.webforum.nu/a/7265.rar)

Permalänk: https://www.webforum.nu/p/1655211

## #10 — Helmertz, 2005-08-09T18:37Z

Borde det inte fungera med en array som loopas igenom egentligen? Den kan ju undersöka med *php_self* (om det gäller gastbok.php) eller *pathinfo* (om det gäller /gastbok/) om den ska skriva ut *id="active"*. Eller är jag ute och cyklar? :)

Permalänk: https://www.webforum.nu/p/1655218

## #11 — silfver, 2005-08-09T18:39Z

> **Helmertz skrev:**
>
> Borde det inte fungera med en array som loopas igenom egentligen? Den kan ju undersöka med *php_self* (om det gäller gastbok.php) eller *pathinfo* (om det gäller /gastbok/) om den ska skriva ut *id="active"*. Eller är jag ute och cyklar? :)

Det finns säkert smidigare och smartare sätt än det jag har gjort. Så är det nån som vill dela med sig så blir jag också glad. :D

Permalänk: https://www.webforum.nu/p/1655219

## #12 — Matte, 2005-08-09T19:35Z

> **silfver skrev:**
>
> > **Helmertz skrev:**
> >
> > Borde det inte fungera med en array som loopas igenom egentligen? Den kan ju undersöka med *php_self* (om det gäller gastbok.php) eller *pathinfo* (om det gäller /gastbok/) om den ska skriva ut *id="active"*. Eller är jag ute och cyklar? :)
>
> Det finns säkert smidigare och smartare sätt än det jag har gjort. Så är det nån som vill dela med sig så blir jag också glad. :D

Annars borde det gå att göra något i stil med:

```php
$pages = array(
  'sjukamp'=>'blue',
  'höjdhopp'=>'blue', 
  'spjut'=>'blue', 
  'längdhopp'=>'blue', 
  'kula'=>'blue', 
  '800m'=>'blue', 
  '200m'=>'blue', 
  'häck'=>'blue'
);

if (isset($_GET['part']) && array_key_exists($_GET['part'], $pages)) {

   echo $_GET['part']."<br />\n";
   $pages[$_GET['part']] = 'red';

} else {

   echo "sjukamp<br />\n";
   $pages['sjukamp'] = 'red';

}

echo '
	<div id="meny">
		<ul class="meny">
';

foreach ($pages as $part => $color) {
   echo "<li><a href=\"index.php?part=$part\" style=\"color:$color\">$part</a></li>\n";
}

echo '
		</ul>
	</div>
';
```

Men kanske använda class istället för style/color.

Permalänk: https://www.webforum.nu/p/1655250

## #13 — Helmertz, 2005-08-09T21:28Z

Matte; hur skulle ditt exempel se ut om du istället för */index.php?part=200m* har */200m/*? (200m är alltså en mapp med en index.php i.

Permalänk: https://www.webforum.nu/p/1655315

## #14 — Matte, 2005-08-10T20:21Z

> **Helmertz skrev:**
>
> Matte; hur skulle ditt exempel se ut om du istället för */index.php?part=200m* har */200m/*? (200m är alltså en mapp med en index.php i.

Då skulle det kunna se ut något liknande detta:

```php
$page = basename(dirname($_SERVER['PHP_SELF']));

$pages = array(
  'sjukamp'=>'blue',
  'höjdhopp'=>'blue', 
  'spjut'=>'blue', 
  'längdhopp'=>'blue', 
  'kula'=>'blue', 
  '800m'=>'blue', 
  '200m'=>'blue', 
  'häck'=>'blue'
);

if (array_key_exists($page, $pages)) {

   echo "$page<br />\n";
   $pages[$page] = 'red';

} else {

   echo "sjukamp<br />\n";
   $pages['sjukamp'] = 'red';

}

echo '
	<div id="meny">
		<ul class="meny">
';

foreach ($pages as $part => $color) {
   echo "<li><a href=\"index.php/$part/\" style=\"color:$color\">$part</a></li>\n";
}

echo '
		</ul>
	</div>
';
```

Permalänk: https://www.webforum.nu/p/1655726

---

Tråden på webben: https://www.webforum.nu/amne/php/132378-php-meny
