• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Media Queries (screenwidth) an PHP senden - javascript zu spät (php bereits gelaufen)

R123456

New member
Hallo zusammen,
bin gerade dabei meine Site responsive zu machen mittels dem boostrap Framework. Die Inhalte werden allesamt per php dynamisch aus der Datenbank gelesen.

Folgendes Problem:
Ich schaffe es nicht wirklich alles runter bis zur Breite 320px nur mit css anzupassen sondern muß bei einigen Inhalten ab einer bestimmten Bildschirmbreite meine php-scripts anpassen und eine Alternative ausgeben. php sollte aber bereits beim ersten Seitenaufruf die Bildschirmbreite des browsers kennen.

Lösungsversuch:
1) ich rufe im head der html eine javascript funktion auf die die Bildschirmbreite per window.matchMedia ermittelt und einen parameter an ein php script übergibt (code siehe unten)
2) das php script schreibt die Bildschirmweite in eine mysql datenbank (code denke nicht nötig)
3) dann solte ein php script was inhalte erzeugt die Bildschirmweite aus der Datenbank lesen und die Inhalte richtig erzeugen (code denke nicht nötig)

Problem: (eigentlich logisch)
das ganze funktioniert leider immer erst ab dem zweiten Seitenaufruf (mit der Seitenbreite der letzten Seite) , da das Javasrcipt erst nach dem Laden der Seite im Browser ausgeführt wird.

Könnt Ihr mir da weiterhelfen ?
entweder sollte es ne Möglichkeit geben das JS ganz am Anfang laufen zu lassen bevor das Ausgabe-php läuft oder .... ? hoffe Ihr habt ne Idee. Sitze schon seit 2 Tage und komme nicht weiter.

danke
Rolf



Code zu Lösungsversuch 1)
---------------------------------------------
Code:
function responsive()
 {
 if (window.matchMedia("(min-width:1px)").matches) {
 var mq = "1-319px";
 }
 if (window.matchMedia("(min-width:320px)").matches) {
 var mq = "320-499px";
 }
 if (window.matchMedia("(min-width:500px)").matches) {
 var mq = "500-639px";
 }
 if (window.matchMedia("(min-width:640px)").matches) {
 var mq = "ueber640px";
 }

 $.ajax({
 type: "POST",
 url: "../123/php/responsive_speichern.php",
 data: {name1: mq},
 });
 }
 
Zuletzt bearbeitet von einem Moderator:
AW: Media Queries (screenwidth) an PHP senden - javascript zu spät (php bereits gelau

php sollte aber bereits beim ersten Seitenaufruf die Bildschirmbreite des browsers kennen.
Das ist nicht möglich.
JS ganz am Anfang laufen zu lassen bevor das Ausgabe-php läuft
Auch das ist nicht möglich, da JS auf dem Client und PHP auf dem Server ausgeführt wird. PHP wird also komplett ausgeführt, bevor JS irgendetwas macht. Deine einzige Möglichkeit wäre, dass du das HTML dynamisch je nach Fensterbreite mit einem zweiten Request abholst. Aber damit wird deine Seite komplett unbrauchbar, wenn JS deaktiviert ist und außerdem verdoppelst du damit die Last auf deinem Server...
 
Zurück
Oben