Ausgabe und Quelltext nicht identisch

Hallo PHP-Experten!

Ich habe eine PHP-Navigation erstellt und mit CSS-Klassen formatiert. Heute habe ich die Seite http://gemco.at/meineseite/texte/deutsch/dstart.php aufgerufen und sehe, dass die Navigation nicht mehr korrekt dargestellt wird. Es werden nur noch 2 Navigationspunkte angezeigt, obwohl im Quelltext alle aufscheinen. Die anderen wurden aber nicht ausgeblendet oder so, sie scheinen einfach nicht mehr auf. Das trifft auf alle Dateien der Seite zu, aber komischerweise betrifft es immer verschiedene Navigationspunkte…

Hier noch der Quelltext der Navigation:

$ich = basename($\_SERVER['PHP\_SELF']);
 switch($ich) {
 case 'dstart.php';
 echo "";
 echo " ";
 echo "

";
echo "- Startseite
";
echo "- Profil und Kompetenzen
";
echo "- Referenzen und Projekte
";
echo "- Kontakt
";
echo " ";
break;
case ‚profil.php‘;
echo „“;
echo " ";
echo "
";
echo "- Startseite
";
echo "- Profil und Kompetenzen
";
echo "- Referenzen und Projekte
";
echo "- Kontakt
";
echo " ";
break;
case ‚referenzen.php‘;
echo „“;
echo " ";
echo "
";
echo "- Startseite
";
echo "- Profil und Kompetenzen
";
echo "- Referenzen und Projekte
";
echo "- Kontakt
";
echo " ";
break;
case ‚kontakt.php‘;
echo „“;
echo " ";
echo "
";
echo "- Startseite
";
echo "- Profil und Kompetenzen>
";
echo "- Referenzen und Projekte
";
echo "- Kontakt
";
echo " ";
break;
default: echo „Fehler in der Anzeige!“;
}

Gruß Alex

Moin,

Ich habe eine PHP-Navigation erstellt

Sowas gibts nicht. Du hast vermutlich eine Navigationsliste in HTML mit Hilfe von PHP erstellt. PHP läuft nicht im Browser und PHP stellt in diesem Zusammenhang auch nichts dar. Eine Navigation in PHP macht also keinen Sinn.

Die anderen wurden aber nicht
ausgeblendet oder so, sie scheinen einfach nicht mehr auf.

Doch. Sie sind deutlich im Quellcode sichtbar, werden aber nicht angezeigt.

Das trifft auf alle Dateien der Seite zu

Dateien? Eine Webseite kennt keine Dateien…

aber komischerweise
betrifft es immer verschiedene Navigationspunkte…

Ein PHP-Problem ist hier nicht erkennbar.

echo " ";
echo "
";

Wozu ein div um das ul rum? Außerdem wird ein div keine Liste, nur weil man die Klasse so nennt. Das ul ist eine Liste. Das dv ist eine Gruppe. Und wenn nur ein Element drin steht, ist es in fast allen Fällen überflüssig.

Dein Problem ist ein reines CSS-Problem.
Deine Menüpunkte passen nicht mehr in das umgebende Element, hier div#navi.

Du sagst, es soll nur 50px hoch sein, das ist aber zu wenig für die Menüpunkt, die in die nächste Zeile rutschen. Daher siehst Du sie nicht mehr.

Liebe Grüße,
-Efchen

P.S.: Räum Dein HTML mal ein bisschen auf, Du kochst div-Suppe. Ein div ist eine logische Gruppe und wird nur benötigt, wenn Du mindestens zwei Elemente gruppieren willst (ein einzelnes wäre ja auch keine Gruppe). Alle Eigenschaften, die Du dem div zuweist, kannst Du z.B: auch der Liste zuweisen, denn beides sind Block-Elemente.
Außerdem vernachlässigst Du die ungeheuer wichtige Semantik. Ein Inhalt wird nicht zu einer Überschrift, indem man ein div mit der ID „header“ darumlegt. Damit definiert man nur wieder eine Gruppe. Eine Überschrift definiert man mit h1 und folgende.

Hallo Efchen!

Ich hab die Navigation nochmal komplett neu (als Tabelle) erstellt, jetzt klappt alles. Danke für deine Tipps.

<?PHP $ich = basename($_SERVER['PHP_SELF']);<br /> if ($ich == 'dstart.php') {
 echo "["; echo "](../englisch/estart.php)

";
echo „Startseite“;
echo „Profil und Kompetenzen“;
echo „Referenzen und Projekte“;
echo „Kontakt“;
echo „“;
}
elseif ($ich == ‚profil.php‘) {
echo „“;
echo „“;
echo „Startseite“;
echo „Profil und Kompetenzen“;
echo „Referenzen und Projekte“;
echo „Kontakt“;
echo „“;
}
elseif ($ich == ‚referenzen.php‘) {
echo „“;
echo „“;
echo „Startseite“;
echo „Profil und Kompetenzen“;
echo „Referenzen und Projekte“;
echo „Kontakt“;
echo „“;
}
elseif ($ich == ‚kontakt.php‘) {
echo „“;
echo „“;
echo „Startseite“;
echo „Profil und Kompetenzen>“;
echo „Referenzen und Projekte“;
echo „Kontakt“;
echo „“;
}
else {echo „Fehler in der Anzeige!“;}
?>

Gruß Alex

Moin

Ich hab die Navigation nochmal komplett neu (als Tabelle)
erstellt, jetzt klappt alles. Danke für deine Tipps.

Damit hast du irgendwie gar nicht HTML getroffen.

eine Liste bleibt immer noch
oder

und tags sind eigentlich total egal was die ansicht angeht , denn mit CSS erzeugen wir eine ansicht , mit TAGS makieren wir die bedeutung, damit z.b. sprachausgaben die liste richtig wieder geben 1.1 , 1.2 , 1.3 , 2.0 , 2.1 … etc
wir können also jeden tag gleich formatieren (nicht ganz aber fast) und somit sind die tags , was die ansicht angeht, eigentlich austauschbar . Also warum tabelle nehmen, wenn doch das listen tag schon vorhanden ist .

Also bleib bei sematik

, tabellen haben da nix zu suchen :smile:

ünrigens :
Eine Tabelle für nur 1 Dimension ist 1 ein riesen rechenaufwand für dein browser.

Moin,

Ich hab die Navigation nochmal komplett neu (als Tabelle)
erstellt

Isst Du Suppe mit einer Gabel?
Wieso machst Du das?

Ein Menü ist doch eine Liste von Links. Eine Liste. Also zeichnet man die selbstverständlich auch als Liste aus und nicht als Tabelle! Wenn Du den Sinn von HTML noch nicht verstanden hast, dann schau mal in die Einführung in FAQ:1161 oder google nach „Semantik“ oder such hier im Forum nach meinen Beiträgen zu dem Thema. HTML dient nur der logischen Strukturierung Deines Inhalts, zur Auszeichnung der Semantik.

Eine Tabelle verwendet man ausschließlich für tabellarische Daten. Diese sind aber immer zweidimensional, was ein Menü nicht ist. Zeichne ein Menü also immer als Liste aus!

jetzt klappt alles. Danke für deine Tipps.

Das ist immerhin erfreulich :smile:

Liebe Grüße,
-Efchen