12. oktober 2008 - 21:11
Der er
40 kommentarer og 1 løsning
Hjælp til at lave menu?
Hej Sidder og laver en menu, men har et lille problem. Koden ses her: <?php echo" <ul id='tabnav'> <li><a href='../Index.php' class='active'>Forside</a></li> <li><a href='../Produkter/Index.php'>Produkter</a></li> <li><a href='../Download/Index.php'>Download</a></li> <li><a href='../Webservice/Index.php'>Webservice</a></li> <li><a href='../Kontakt.php'>Kontakt</a></li> </ul>"; ?> Vil gerne have lavet sådan, at når et link bliver trykket på, skal class='active' bruges, ved det link der er aktiv?
Annonceindlæg fra IBM
12. oktober 2008 - 21:16
#1
<li><a href='../Produkter/Index.php'"; if($_GET[site==produkter])echo "class='active'"; echo ">Produkter</a></li> nu ved jeg ikke hvordan dit site er bygget op, da alle dine punkter linker til forsiden...
12. oktober 2008 - 21:21
#2
de linker til en forside en hver sin mappe?
12. oktober 2008 - 21:29
#3
i hver sin mappe
12. oktober 2008 - 22:32
#4
Du kan <?php function href_class($var) { $str = ""; if($_SERVER["PHP_SELF"] == $var) { $str = " class='ative'"; } return $str; } echo" <ul id='tabnav'> <li><a href='../Index.php'".href_class("/Index.php").">Forside</a></li> <li><a href='../Produkter/Index.php'".href_class("/Produkter/Index.php").">Produkter</a></li> <li><a href='../Download/Index.php'".href_class("/Download/Index.php").">Download</a></li> <li><a href='../Webservice/Index.php'".href_class("/Webservice/Index.php").">Webservice</a></li> <li><a href='../Kontakt.php'".href_class("/Kontakt.php").">Kontakt</a></li> </ul>"; ?> Hvorfor linker du "direkte" <a href='/Download/Index.php'> eller <a href='/Download/'>
12. oktober 2008 - 22:32
#5
du IKKE "direkte"
13. oktober 2008 - 08:28
#6
ja, det havde jeg så ikke lige set, sorry
13. oktober 2008 - 08:40
#7
Hvad med en kode ala: <?php $menu = array( 'Forside' => '/Index.php', 'Produkter' => '/Produkter/Index.php', 'Download' => '/Download/Index.php', 'Webservice' => '/Webservice/Index.php', 'Kontakt' => '/Kontakt.php' ); echo '<ul id="tabnav">'; foreach($menu AS $title => $url){ echo '<li><a href="'.$url.'"'.(($_SERVER["PHP_SELF"] == $url) ? ' class="active"' : '').'>'.$title.'</a></li>'; } echo '</ul>'; ?> Og lad vær med at brug store bogstaver i dine filnavne, hold dig altid til de små. :o)
13. oktober 2008 - 22:23
#8
jakobdo > din kode er perfekt, mne der er et lille problem. vil gerne havde sådan at Forside er aktiv når man kommer ind på side, og ikke først når man har trykket på linket.
14. oktober 2008 - 00:12
#9
/
14. oktober 2008 - 08:09
#10
Den burde da trigge, når din forside hedder Index.php og den åbnes som standard. Har du et link til din side ? Prøv evt. at udskriv: $_SERVER["PHP_SELF"] i toppen af siden, og se hvad den udskriver, når du "starter" siden.
14. oktober 2008 - 20:21
#11
min side køre local, den skriver ikke noget når jeg bruger udskriv: $_SERVER["PHP_SELF"]
14. oktober 2008 - 20:56
#12
Heller ikke hvis du åbner en anden side ?
14. oktober 2008 - 20:56
#13
<?php phpinfo(); ?> Smid det i index.php Åben så: localhost/mappe/ mappe = den mappe hvor index.php er lagt i. Kan du finde et sted den udskriver index.php i info på skærmen ?
14. oktober 2008 - 21:04
#14
nej, den udskriver slet ikke noget.... hmm, forstod ikke helt det sidste?
14. oktober 2008 - 21:17
#15
På din localhost, opret en mappe i din htdocs.
Kald f.eks. mappen: /eks
Gem indholdet herunder som index.php i mappen.
<?php
phpinfo();
?>
Åben så:
http://localhost/eks/ Udskrives der en masse info på skærmen ?
Hvis ja, så se om du kan finde en _SERVER variabel som indeholder index.php
14. oktober 2008 - 21:17
#16
hvordan har du sat din server op? har du selv installeret apache og php, eller har du kørt en wamp-installation?
14. oktober 2008 - 22:30
#17
Ja, har selv sat det hele op? syndes ikke rigtig jeg kan finde noget med noget _SERVER variavel? Kan det have noget at gøre med den hedder Index.php og ikke index.php, når jeg har brugt index.php i httpd.
15. oktober 2008 - 08:01
#18
Viser den noget på din skærm, når du åbner
http://localhost/eks/ Eller får en fejl om siden ikke kan vises ?
15. oktober 2008 - 08:47
#19
Ja, den viser php's info side
15. oktober 2008 - 09:16
#20
Kan du evt. copy/paste hele skidtet herind ?
15. oktober 2008 - 18:30
#21
Siden er delt op i flere sider, vil du havde dem alle?
15. oktober 2008 - 20:07
#22
Prøv at vis os forsiden ?
15. oktober 2008 - 21:40
#23
top.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
http://www.w3.org/TR/html4/loose.dtd"> <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="TSW WebCoder">
<link type="text/css" media="screen" rel="stylesheet" href="../Style.css">
<title>Home Media</title>
</head>
<body>
<div id="container">
<div id="header">
<em>Ho</em>me Data & Media
</div>
menu.php
<?php
$menu = array(
'Forside' => '/Index.php',
'Produkter' => '/Produkter/Index.php',
'Download' => '/Download/Index.php',
'Webservice' => '/Webservice/Index.php',
'Kontakt' => '/Kontakt.php'
);
echo '<ul id="tabnav">';
foreach($menu AS $title => $url){
echo '<li><a href="'.$url.'"'.(($_SERVER["PHP_SELF"] == $url) ? ' class="active"' : '').'>'.$title.'</a></li>';
}
echo '</ul>';
?>
index.php
<?php
include ("Include/Top.php");
include ("Include/Menu.php");
include ("Include/Nyheder.php");
echo"
<div id='content'>
<h3>Velkommen</h3>
<p>Velkommens tekst her</p>
<h3>Nye produkter</h3>
<p>Nye produkter her</p>
<h2></h2>
<p></p>
</div>";
include ("Include/Bund.php");
?>
nyheder.php
<div id="sidebar">
<h3>Nyheder</h3>
Nyheder her
</div>
bund.php
<div id="footer">
<p>| Copyright © <a href="mailto:">Home Media</a> |</p>
</div>
</div>
</body>
</html>
15. oktober 2008 - 22:08
#24
Prøv at lav en fil som indeholder: <?php echo '<pre>'; print_r($_SERVER); echo '</pre>'; ?> Udskriver den ingen data ?
15. oktober 2008 - 22:15
#25
Array ( [HTTP_ACCEPT] => image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */* [HTTP_ACCEPT_LANGUAGE] => da [HTTP_UA_CPU] => x86 [HTTP_ACCEPT_ENCODING] => gzip, deflate [HTTP_USER_AGENT] => Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727) [HTTP_HOST] => localhost [HTTP_CONNECTION] => Keep-Alive [PATH] => C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\php;C:\mysql\bin;C:\Programmer\Samsung\Samsung PC Studio 3\ [SystemRoot] => C:\WINDOWS [COMSPEC] => C:\WINDOWS\system32\cmd.exe [PATHEXT] => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH [WINDIR] => C:\WINDOWS [SERVER_SIGNATURE] => Apache/2.0.63 (Win32) PHP/5.2.6 Server at localhost Port 80 [SERVER_SOFTWARE] => Apache/2.0.63 (Win32) PHP/5.2.6 [SERVER_NAME] => localhost [SERVER_ADDR] => 127.0.0.1 [SERVER_PORT] => 80 [REMOTE_ADDR] => 127.0.0.1 [DOCUMENT_ROOT] => C:/apache/Apache2/htdocs [SERVER_ADMIN] => mivroth@hotmail.com [SCRIPT_FILENAME] => C:/apache/Apache2/htdocs/index1.php [REMOTE_PORT] => 3796 [GATEWAY_INTERFACE] => CGI/1.1 [SERVER_PROTOCOL] => HTTP/1.1 [REQUEST_METHOD] => GET [QUERY_STRING] => [REQUEST_URI] => /Index1.php [SCRIPT_NAME] => /Index1.php [PHP_SELF] => /Index1.php [REQUEST_TIME] => 1224101720 )
15. oktober 2008 - 22:24
#26
Er du så sikker på: $_SERVER['PHP_SELF'] ikke indeholder noget, hvis du smider den i Index.php og åbner den ? Prøv lige at smid samme kode i toppen af f.eks. top.php og åben: localhost/ hvad smider den så ud ? Du skulle gerne kunne finde index.php eller Index.php et sted.
16. oktober 2008 - 18:54
#27
Kom til og tænke på om det skulle havde noget at gøre med jeg include, alle siderne?
16. oktober 2008 - 20:22
#28
Hvis alle sider bliver vist via: index.php?page=top Så kan det godt være problemet.
16. oktober 2008 - 20:51
#29
det gør det heller ikke, min index ser jo sådan ud <?php include ("Include/Top.php"); include ("Include/Menu.php"); include ("Include/Nyheder.php"); echo" <div id='content'> <h3>Velkommen</h3> <p>Velkommens tekst her</p> <h3>Nye produkter</h3> <p>Nye produkter her</p> <h2></h2> <p></p> </div>"; include ("Include/Bund.php"); ?>
16. oktober 2008 - 20:52
#30
og jeg skriver kun index.php, og så ligger det hele jo i siden
16. oktober 2008 - 21:03
#31
Prøv at test: <?php include ("Include/Top.php"); include ("Include/Menu.php"); include ("Include/Nyheder.php"); echo '<pre>'; print_r($_SERVER); echo '</pre>'; echo" <div id='content'> <h3>Velkommen</h3> <p>Velkommens tekst her</p> <h3>Nye produkter</h3> <p>Nye produkter her</p> <h2></h2> <p></p> </div>"; include ("Include/Bund.php"); ?> Og se så om du kan finde index.php nogen steder.
16. oktober 2008 - 21:39
#32
den udskriver dette Array ( [HTTP_ACCEPT] => image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */* [HTTP_ACCEPT_LANGUAGE] => da [HTTP_UA_CPU] => x86 [HTTP_ACCEPT_ENCODING] => gzip, deflate [HTTP_USER_AGENT] => Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727) [HTTP_HOST] => localhost [HTTP_CONNECTION] => Keep-Alive [PATH] => C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\php;C:\mysql\bin;C:\Programmer\Samsung\Samsung PC Studio 3\ [SystemRoot] => C:\WINDOWS [COMSPEC] => C:\WINDOWS\system32\cmd.exe [PATHEXT] => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH [WINDIR] => C:\WINDOWS [SERVER_SIGNATURE] => Apache/2.0.63 (Win32) PHP/5.2.6 Server at localhost Port 80 [SERVER_SOFTWARE] => Apache/2.0.63 (Win32) PHP/5.2.6 [SERVER_NAME] => localhost [SERVER_ADDR] => 127.0.0.1 [SERVER_PORT] => 80 [REMOTE_ADDR] => 127.0.0.1 [DOCUMENT_ROOT] => C:/apache/Apache2/htdocs [SERVER_ADMIN] => mivroth@hotmail.com [SCRIPT_FILENAME] => C:/apache/Apache2/htdocs/Index.php [REMOTE_PORT] => 2764 [GATEWAY_INTERFACE] => CGI/1.1 [SERVER_PROTOCOL] => HTTP/1.1 [REQUEST_METHOD] => GET [QUERY_STRING] => [REQUEST_URI] => / [SCRIPT_NAME] => /index.php [PHP_SELF] => /index.php [REQUEST_TIME] => 1224185858 )
16. oktober 2008 - 21:43
#33
[PHP_SELF] => /index.php Ergo skal $_SERVER['PHP_SELF'] altså virke... Kan du ikke prøve at kontakte mig på msn: jakobdo (at) hotmail {dot} com Ellers tror jeg ikke vi finder en løsning på denne.
16. oktober 2008 - 22:04
#34
Har lige tilføjet dig :)
16. oktober 2008 - 22:47
#35
Jakobdo, fik lavet det over msn. Her er løsningen <?php $menu = array( 'Forside' => '/Index.php', 'Produkter' => '/Produkter/Index.php', 'Download' => '/Download/Index.php', 'Webservice' => '/Webservice/Index.php', 'Kontakt' => '/Kontakt.php' ); echo '<ul id="tabnav">'; foreach($menu AS $title => $url){ echo '<li><a href="'.$url.'"'.((strtolower($_SERVER["PHP_SELF"]) == strtolower($url)) ? ' class="active"' : '').'>'.$title.'</a></li>'; } echo '</ul>'; ?>
17. oktober 2008 - 07:16
#36
Problemet var Windows relateret. Når man kalder / som åbner apache som default index.php Brugeren havde dog en Index.php fil liggende, som windows stiller sig tilfreds med. Men når man sammenlignede index.php og Index.php, så matchede det jo ikke. :o) Og du får et svar.
17. oktober 2008 - 07:16
#37
Jeg vil nok også anbefale dig at ændre navnene på mapper og filer, så alt er med små bogstaver.
17. oktober 2008 - 16:57
#38
tak for hjælpem, filnavet vil blive rette som noget af det næste :)
17. oktober 2008 - 17:35
#39
Du skal lige acceptere svaret. :o)
18. oktober 2008 - 00:07
#40
sorry sådan
18. oktober 2008 - 08:52
#41
Takker for point.
Vi tilbyder markedets bedste kurser inden for webudvikling