Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

dynamisches menü nicht ganz w3c valid

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
matin
PostRank 9
PostRank 9
Beiträge: 1427
Registriert: 08.09.2005, 15:16
Wohnort: Grünburg

Beitrag von matin » 04.12.2005, 17:11

hallo,

habe ein kleines problem. habe mir einen code für ein dynamisches menü heruntergeladen und auch irgendwie geschafft, dass das ganze funktioniert (habe keine erfahrung mit php). der code sieht so aus:

<?
/*
die Variable $siteRoot muss angepasst werden, wenn die dateien in einem Unterverzeichnis abgelegt werden. Wenn das Unterverzeichnis z.B. "DIR" heißt, dann muss $siteRoot="/DIR/"; sein
*/

$siteRoot="/";
$menuStruct=array(
"Home"=>array("root"=>$siteRoot."home.php"),
"Menüpunkt 1"=>array("root"=>$siteRoot."menuepunkt1.php", "Untermenü 1"=>$siteRoot."untermenue1.php", "Untermenü 2"=>$siteRoot."untermenue2.php"),
"Menüpunkt 2"=>array("root"=>$siteRoot."menupunkt2.php", "Untermenü 3"=>$siteRoot3."untermenu3php"),
);


if($PHP_SELF == $menuStruct[0]['root']){
foreach($menuStruct as $key=>$value){
if($PHP_SELF == $value['root']){
echo "<div class=\"fstLevelActive\"><a href=".$value['root'].">$key</a></div>\n";
}
else{
echo "<div class=\"fstLevel\"><a href=".$value['root'].">$key</a></div>\n";
}
}
} else {
foreach($menuStruct as $key=>$value){
if($PHP_SELF == $value['root']){
echo "<div class=\"fstLevelActive\"><a href=".$value['root'].">$key</a></div>\n";
}else{
echo "<div class=\"fstLevel\"><a href=".$value['root'].">$key</a></div>\n";
}
foreach($value as $key2=>$value2){
if(array_search($PHP_SELF,$value)){
if($key2 != "root")
if($PHP_SELF == $value2){
echo "<div class=\"secLevelActive\"><a href=".$value2.">$key2</a></div>\n";
}else{
echo "<div class=\"secLevel\"><a href=".$value2.">$key2</a></div>\n";
}
}
}
}
}
?>

das problem ist folgender code-abschnitt:
$siteRoot="/";

das "/" brauche ich im code, damit der weitere code den "aktiven Menüpunkt" ausliest und es entsprechend darstellt. wenn ich den slash weglasse, funzt das menü zwar, aber der aktive menüpunkt wird nicht angezeigt.

soweit so gut. das problem ist nur, wenn ich mit validitor.w3c.org den code überprüfe, zeigt es mir eine fehlermeldung wegen dem "/" vor dem link.

wie gesagt, ich versteh die ganzen codes da oben nicht wirklich. gibt es eine möglichkeit, dass man den "/" weglässt und trotzdem der aktive link ausgelesen wird?

Anzeige von ABAKUS

von Anzeige von ABAKUS »


Hochwertiger Linkaufbau bei ABAKUS:
  • Google-konformer Linkaufbau
  • nachhaltiges Ranking
  • Linkbuilding Angebote zu fairen Preisen
  • internationale Backlinks
Wir bieten Beratung und Umsetzung.
Jetzt anfragen: 0511 / 300325-0

Christophe
PostRank 5
PostRank 5
Beiträge: 246
Registriert: 13.12.2004, 13:07

Beitrag von Christophe » 04.12.2005, 18:23

Es würde helfen, wenn du den HTML-Code den das Skript ausspuckt hier einstellen würdest.

matin
PostRank 9
PostRank 9
Beiträge: 1427
Registriert: 08.09.2005, 15:16
Wohnort: Grünburg

Beitrag von matin » 04.12.2005, 18:39

<div id="content_left">
<div class="fstLevel"><a href=/home.php>Home</a></div>
<div class="fstLevel"><a href=/menuepunkt1.php>Menüpunkt 1</a></div>

<div class="fstLevelActive"><a href=/menuepunkt2.php>Menüpunkt 2</a></div>
<div class="secLevel"><a href=/untermenue1.php>Untermenü 1</a></div>
<div class="secLevel"><a href=/untermenue2.php>Untermenü 2</a></div>

<div class="secLevel"><a href=/menuepunkt3.php>Menüpunkt 3</a></div>
</div>
https://suchmaschinentricks.at/ - Ziehen Sie die Aufmerksamkeit im Internet auf sich ...
Kaufe verschiedene Projekte mit entsprechendem Content - Kontaktaufnahme per PN

Anzeige von ABAKUS

von Anzeige von ABAKUS »

Content Erstellung von ABAKUS Internet Marketing
Ihre Vorteile:
  • einzigartige Texte
  • suchmaschinenoptimierte Inhalte
  • eine sinnvolle Content-Strategie
  • Beratung und Umsetzung
Jetzt anfragen: 0511 / 300325-0

Liesl_Weppen
PostRank 2
PostRank 2
Beiträge: 44
Registriert: 27.08.2005, 13:28

Beitrag von Liesl_Weppen » 04.12.2005, 19:35

Hallo,

das Problem liegt vermutlich an fehlenden Anführungszeichen

Code: Alles auswählen

<a href=/home.php>Home</a>
so wärs korrekt mit HTML 4.01 Transitional

Code: Alles auswählen

<a href="/home.php">Home</a>
im php-Script, wo die Links geschrieben werden

Code: Alles auswählen

<a href=".$value&#91;'root'&#93;.">
vor und hinter das

Code: Alles auswählen

".$value&#91;'root'&#93;."
je ein Anführungszeichen setzen

matin
PostRank 9
PostRank 9
Beiträge: 1427
Registriert: 08.09.2005, 15:16
Wohnort: Grünburg

Beitrag von matin » 04.12.2005, 19:44

Liesl_Weppen hat geschrieben:
vor und hinter das

Code: Alles auswählen

".$value&#91;'root'&#93;."
je ein Anführungszeichen setzen
... die anführungzeichen sind drin (s. oben), aber er scheint sie nicht zu übernehmen ... warum?

Tutsn
PostRank 1
PostRank 1
Beiträge: 19
Registriert: 14.09.2005, 14:47

Beitrag von Tutsn » 04.12.2005, 19:59

matin hat geschrieben:
... die anführungzeichen sind drin (s. oben), aber er scheint sie nicht zu übernehmen ... warum?
Weil du sie nicht maskiert hast. Wenn du mit

Code: Alles auswählen

 echo "text"
arbeitest, dann muss du Anführungszeichen, welche ausgegeben werden sollen maskieren indem du ein \ voranstellst. Ansonsten wird das als Ende des auszugebenen Textes interpretiert.

Liesl_Weppen
PostRank 2
PostRank 2
Beiträge: 44
Registriert: 27.08.2005, 13:28

Beitrag von Liesl_Weppen » 04.12.2005, 20:01

mit vor und hinter meinte ich, es soll dann so sein:

Code: Alles auswählen

"".$value&#91;'root'&#93;.""

Liesl_Weppen
PostRank 2
PostRank 2
Beiträge: 44
Registriert: 27.08.2005, 13:28

Beitrag von Liesl_Weppen » 04.12.2005, 20:13

Slashes haben auch noch gefehlt, hier jetzt der überarbeitete Code:

Code: Alles auswählen

<? 
/* 
die Variable $siteRoot muss angepasst werden, wenn die dateien in einem Unterverzeichnis abgelegt werden. Wenn das Unterverzeichnis z.B. "DIR" heißt, dann muss $siteRoot="/DIR/"; sein 
*/ 

$siteRoot="/"; 
$menuStruct=array&#40; 
"Home"=>array&#40;"root"=>$siteRoot."home.php"&#41;, 
"Menüpunkt 1"=>array&#40;"root"=>$siteRoot."menuepunkt1.php", "Untermenü 1"=>$siteRoot."untermenue1.php", "Untermenü 2"=>$siteRoot."untermenue2.php"&#41;, 
"Menüpunkt 2"=>array&#40;"root"=>$siteRoot."menupunkt2.php", "Untermenü 3"=>$siteRoot3."untermenu3php"&#41;, 
&#41;; 


if&#40;$PHP_SELF == $menuStruct&#91;0&#93;&#91;'root'&#93;&#41;&#123; 
foreach&#40;$menuStruct as $key=>$value&#41;&#123; 
if&#40;$PHP_SELF == $value&#91;'root'&#93;&#41;&#123; 
echo "<div class=\"fstLevelActive\"><a href=\"".$value&#91;'root'&#93;."\">$key</a></div>\n"; 
&#125; 
else&#123; 
echo "<div class=\"fstLevel\"><a href=\"".$value&#91;'root'&#93;."\">$key</a></div>\n"; 
&#125; 
&#125; 
&#125; else &#123; 
foreach&#40;$menuStruct as $key=>$value&#41;&#123; 
if&#40;$PHP_SELF == $value&#91;'root'&#93;&#41;&#123; 
echo "<div class=\"fstLevelActive\"><a href=\"".$value&#91;'root'&#93;."\">$key</a></div>\n"; 
&#125;else&#123; 
echo "<div class=\"fstLevel\"><a href=\"".$value&#91;'root'&#93;."\">$key</a></div>\n"; 
&#125; 
foreach&#40;$value as $key2=>$value2&#41;&#123; 
if&#40;array_search&#40;$PHP_SELF,$value&#41;&#41;&#123; 
if&#40;$key2 != "root"&#41; 
if&#40;$PHP_SELF == $value2&#41;&#123; 
echo "<div class=\"secLevelActive\"><a href=\"".$value2."\">$key2</a></div>\n"; 
&#125;else&#123; 
echo "<div class=\"secLevel\"><a href=\"".$value2."\">$key2</a></div>\n"; 
&#125; 
&#125; 
&#125; 
&#125; 
&#125; 
?> 

matin
PostRank 9
PostRank 9
Beiträge: 1427
Registriert: 08.09.2005, 15:16
Wohnort: Grünburg

Beitrag von matin » 04.12.2005, 22:29

supi!! funzt! vielen dank!!!!
https://suchmaschinentricks.at/ - Ziehen Sie die Aufmerksamkeit im Internet auf sich ...
Kaufe verschiedene Projekte mit entsprechendem Content - Kontaktaufnahme per PN

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag