Einbinden eines Menüs mit PHP JavaScript oder wie?

Manuel_22

Cadet 1st Year
Registriert
Jan. 2004
Beiträge
10
Hi...

ich mal wieder:-)

Würde gerne mal eure Meinung zu folgendem Thema hören:

Ich bin wohl einer der letzten die sich nun mittlerweile auch mal ne Homepage zusammenbasteln wollen und ich hätte da noch 2 Fragen die ich vorab ganz gerne versuchen würde zu klären.

1. Ich baue meine Website mit "DTD-Strict" und XHTML-konform auf. Findet Ihr das veraltet bezüglich XML oder ist das der Zeit noch "einigermassen angemessen? :rolleyes:
Habe gelesen das XML im Bezug mit CSS noch nicht wirklich weit unterstützt wird.

2. Die zweite und noch viel wichtigere Frage ist folgende:

Ich habe mir mit Photoshop ein Menü gebastelt und würde das nun, da es wahrscheinlich bei relativ vielen Seiten das gleiche ist nicht jedesmal neu aufbauen. Jetzt habe ich mehrere Möglichkeiten dies zu tun. Mein erster Einfall, der sich scheinbar nicht so ohne weiteres realisieren lässt, war der das Menü in eine externe HTML-Datei zu schreiben und dann aufzurufen. Das wäre allerdings dann bei jeder Seite wohl ein Aufruf. Ausserdem kann man externe HTML-Seiten scheinbar auch nicht on Frames oder so einbauen, stimmt das? Naja...mittlerweile bin ich auf dem Trichter, dass mit ner PHP-Funktion (include "datei-html") zu lösen, allerdings gibt der mir die Datei auch nicht aus. Meldet zwar keinen Fehler aber anzeigen tut er auch nix. Muss ich das jetzt mit ner JavaScript-Funktion und Zeile für Zeile document.wirte machen???

Ist jetzt zwar wohl viel Durcheinander dabei, aber ich hoffe ihr versteht mein Problem.

Viele Dank und wie immer viele Grüsse

Manuel
 
Zu 1: Ist eigentlich das Beste, das du machen kannst in puncto Kompatibilität. Aber stell dich schon mal darauf ein, dass es nicht einfach wird, deine Seite XHTML-konform aufzubauen.

Zu 2: Ich würde es anders rum aufbauen. Warum das Menu in jede Seite einbinden? Binde doch lieber deine Seiten in das Menu ein. Erstelle dir eine Seite, wo du das Menu platzierst. In dem Teil, wo der Inhalt hin kommt, schreibst du include("Datei.html");. An dieser Stelle wird dann die Datei Datei.html eingebunden.
 
Wenn du dennoch dein Menü in jeder Seite includen willst, solltest du darauf achten, dass das Menü dann keine vollständige HTML Datei mehr sein sollte (also mit XHTML Header, <html> etc...) sondern nur noch die Inhalte beinhalten sollte, die das Menü auf der Seite anzeigen.

Stell dir einfach vor, dass du ne HTML Seite mit Menü hast und dann einfach das Menü ausschneidest und in ne andere Datei packtst. Du hast dann keinen neuen HTML-Header sondern einfach nur noch ne Tabelle oder ein DIV oder ein IMG oder wie auch immer.
Ich hoffe du hast mich verstanden.

Zur Entscheidung mit XHTML-Strict: Technisch der letzte Stand. XHTML ist ja eine XML-konforme Definition des HTML Formats. Strict ist besonders zukunftssicher aber auch reichlich eingeschänkt. Aber wenn du es packst, hast du wunderbaren Code, den jeder standardkonforme Browser gleich wiedergeben sollte.
 
Der letzte Stand ist afaik XHTML 1.1 (da gibts nur eins, das entspricht dann wohl Strict).

Einfach validieren und Code-Fehler suchen kannst du übrigens z.B. mit der Web Developer-Extension für Firefox.
 
Hmm...danke schon mal vorab für die schnelle Hilfe. Bin echt zu Frieden hier. Das funzt klasse. Hoffe ich kann auch mal jmd. helfen :rolleyes:

Angenommen ich würde das jetzt mittels include implementieren, was ist denn dann jetzt an folgender Zeile falsch?

<td rowspan="3" width="170" height="960" bgcolor="#F7FBFD"><? include("menu-incl.html"); ?></td>

Die Datei menu-incl.html enthällt nur <table></table> ( und den Inhalt halt dazwischen ) wenn ich die Datei alleine aufrufe, dann funzt es. Hab mir mal ne Kopie davon gemacht mit DOCTYPE, BODY usw. aber so bald ich die Datei mittels php includiere klappts net mehr. Da kommt kein Menü. ???

Gruss
Manuel
 
Ich sehe keinen Fehler in deinem Code. Versuch aber mal, das <? durch <?php auszutauschen.
 
Hatte ich schon probiert, aber der IE zeigt recht wenig an :mad:

Komische Sache...also in der Datei steht jetzt nur noch die reine Table drin und sonst nix... und dann includiere ich das wie beschrieben.

Es kommt zwar wie gesagt keine Fehlermeldung, aber anzeigen tut er leider mein schönes Menü auch nicht
 
Dann versuch doch einfach mal, ob das inkludieren von Dateien bei dir überhaupt funktioniert. Erstelle einfach eine php-Datei und schreibe dort lediglich
PHP:
<?php
include("datei.html");
?>
rein. Dann erstelle noch die datei.html und schreib da irgendwas rein. Wenn das funktioniert, liegt der Fehler woanders :).
 
Hmm... hat sich ausincludiert wie das aussieht;-)

da tut sich irgendwie wenig. Habe den Code oben von Dir getestet da zeigt er aber genauso wenig an. Das komische ist aber, dass er diese Datei php-info, die man am Anfang zum testen nimmt abzeigt. Das heisst doch eigentlich das der PHP-Interpreter aufm localhost vorhanden ist oder sehe ich das falsch?
 
Nein, ist vollkommen korrekt. Wenn du PHP benutzen kannst (so wie es aussieht), dann kannst du auch die Funktion "include" benutzen. So sollte es eigentlich sein. Mehr fällt mir momentan nicht zu dem Thema ein, sorry.

Edit: Mir fällt gerade noch etwas ein. Wenn ich mich recht entsinne, dann kommt es auf Windows Rechnern zu Problemen mit der include-Funktion, wenn du eine PHP-Version kleiner 4.3 benutzt.
 
Zuletzt bearbeitet von einem Moderator:
@manuel

Die Datei in der Du inkludieren willst MUSS die Endung *.PHP haben sonst wird nicht geparst, kannst auch *.php3, *.php4 nehmen, kommt halt darauf an wie der Server deines Hosters konfiguriert ist.
Wenn du in eine HTML Datei includieren willst geht das nicht mit PHP dann muss du SSI "Server Side Include" benutzen, falls dein Hoster SSI akzeptiert.
Also am besten ist wenn dein Hoster PHP kann, die .HTML in .PHP umbennen dann klappt es mit "include".
 
Dein alter Code:

HTML:
<td rowspan="3" width="170" height="960" bgcolor="#F7FBFD"><? include("menu-incl.html"); ?></td>


Probier statt dessen mal das hier:

HTML:
<td rowspan="3" width="170" height="960" bgcolor="#F7FBFD"><?php echo join('', file("menu-incl.html")); ?></td>


Mit nen bissel Glück, sollte das funktionieren. :D

Ciao


EDIT: Habs gestestet, sollte also normal schon funktionieren. Bedenke aber, dass die Pfadangaben in deinem Menü relativ zur PHP-Seite gemacht werden müssen, oder du verwendest halt absolute Pfade.
 
Zuletzt bearbeitet:
Zurück
Oben