Jonas: Inhalt via XMLHttpRequest tauschen -> Datenbankzugriff PHP

Beitrag lesen

Hi,

ich schreibe derzeit an einer Bildergalerie. Beim Laden der landing page (bestehend aus einem Login-Formular) werden, sofern Javascript eingeschaltet ist, hidden input fields mit JS relevanten Daten gefüllt und im nachfolgenden Skript (PHP), nach erfolgreichem Login, in eine Session geschrieben. D.h. ich weiß jederzeit, ob Javascript eingeschaltet ist und kann dementsprechend verschiedene Versionen meiner Seiten bereitstellen.

Bei eingeschaltetem Javascript würde ich die Inhalte gerne on-the-fly austauschen lassen. Hierzu verwende ich derzeit folgende Methode:
Die Links meiner Navigation werden beim Laden des Userbereichs mit einem onClick-Event ausgestattet, welches via XMLHttpRequest die entsprechende Sektion lädt. Bei den einzubindenden Inhalten handelt es sich um PHP-Skripte, die auf eine Datenbank zugreifen.

Nun zu meinem Problem:

Beim Laden des Userbereichs wird ein Datenbankobjekt in PHP erstellt. Wenn ich nun den Inhalt dynamisch per Javascript tausche, steht dieses Objekt im angeforderten PHP-Skript natürlich nicht mehr zur Verfügung, da das zu ladende PHP-Skript in den bereits verarbeiteten Userbereich geladen wird. Somit habe ich keinen Zugriff auf meine Datenbank.
Derzeit verwende ich folgende Lösung: Die einzelnen Inhalte meiner Seite (PHP-Skripte, die Datenbankzugriff benötigen) werden geparsed und mittels ob_start(), ob_get_contents() in den Cache geschrieben. Aus dem Cache wird dann eine HTML-Seite erstellt und auf dem Server abgelegt. Diese kann ich per XMLHttpRequest laden.
Die Lösung finde ich persönlich sehr unschön, da ich ziemlich unflexibel innerhalb meiner Seiten bin. Bspw. kann ich nicht oder nur begrenzt auf Usereingaben (Formulare, z.B. Filtern von angezeigten Fotos usw.) reagieren, ohne eine neue, statische HTML-Seite schreiben zu lassen, um diese zu laden.

Hat evtl. jmd. einen Ansatz für mich, wie ich dieses Problem etwas eleganter lösen könnte?

Ich hoffe ich habe den Schwerpunkt meines Problems richtig erkannt und somit den passenden Themenbereich gewählt :)

Vielen Dank im voraus und beste Grüße,
Jonas