Hallo Raphael,
Ich habe aber schon versucht, einige Probleme des Iframes per Javascript zu lösen, ...
und damit ein Problem mit einem anderen ergänzt.
Mein Ziel ist es also, sämtliche JavaScript-Elemente in PHP umzuschreiben.
Aber kann ich z.B. mit PHP auch auf Objakte zugreifen, wie z.B. per getElementByID?
Deine Fragestellung lässt erkennen, dass du das Konzept im Grundsatz noch nicht verstanden hast:
PHP läuft auf dem Server. Ein PHP-Script erzeugt dynamisch das HTML-Dokument, das dann zum Client (Browser) geschickt wird. Der Client bekommt davon nichts mit; für ihn besteht kein Unterschied zwischen einem durch PHP generierten und einem rein statischen Dokument. PHP kann daher zwar auf Quelltextebene arbeiten, weiß aber nichts vom DOM, wie Javascript es sieht, und kann vor allem nicht mit dem Benutzer interagieren. Denn wenn das Dokument beim Besucher angezeigt wird, ist PHP längst mit der Arbeit fertig.
Javascript wird dagegen im Browser ausgeführt (oder auch nicht). JS arbeitet eng mit dem HTML-Parser des Browsers zusammen und kann so auf den ganzen Element- bzw. Objektbaum (DOM) zugreifen. JS kann auf Ereignisse reagieren und so Benutzereingaben und Reaktionen verarbeiten. Javascript kann nicht zwingend vorausgesetzt werden; eine Webseite muss daher so aufgebaut sein, dass sie auch ohne Javascript zumindest benutzbar bleibt, wenn auch vielleicht mit Einschränkungen in Ästhetik und Bedienkomfort.
Und wie kann ich das oben geschilderte Anliegen, also dass man nach Klick auf einen Menüpunkt nur einen Bereich laden muss, nicht die ganze Seite, realisieren?
Am besten gar nicht. Ein HTML-Dokument sollte immer komplett neu geladen werden. Der dabei entstehende Overhead wird meist gravierend überschätzt. Eine Seite, die *vollständig* neu geladen wird, braucht in der Regel nicht länger, als wenn nur Teile ausgetauscht werden, denn die übertragene Datenmenge ist bei den heute üblichen Übertragungsraten überhaupt nicht mehr maßgeblich für die benötigte Zeit. Zumindest nicht bei HTML-Dokumenten in üblicher Länge mit wenigen kB Größe.
Mit PHP oder einer anderen serverseitigen Technik (auch SSI kann einiges) kannst du dir die Arbeit aber insofern erleichtern, als du bestimmte Teile der Webpräsenz, die häufig wiederkehren, in separate Dateien auslagerst und beim Abruf der Seite wieder zusammenführst.
Die FAQ dieses Forums bieten übrigens auch einige Ansatzpunkte zum Auslagern von Quellcodeabschnitten. Lesen bildet.
So long,
Martin
Wenn Zeit das Kostbarste ist, was wir haben, dann ist Zeitverschwendung die größte aller Verschwendungen.
(Benjamin Franklin, amerikanischer Tüftler und Politiker)