Anzeige

Problem mit einer simplen if-Anweisung

Problem mit einer simplen if-Anweisung | PSD-Tutorials.de

Erstellt von sindyho0374, 01.03.2016.

  1. sindyho0374

    sindyho0374 Nicht mehr ganz neu hier

    Dabei seit:
    30.09.2010
    Beiträge:
    76
    Geschlecht:
    weiblich
    Problem mit einer simplen if-Anweisung
    Hallo Freunde.
    ich habe ein Problem mit einer if-Anweisung.
    Bitte macht euch nicht lustig aber da ich noch nicht richtig fit in PHP bin würde ich da mal eure Hilfe benötigen.
    Ich habe mir 2 Div Container in einer CSS angelegt (#rot u. #gruen)
    Diese will ich mir nur zu Testzwecken in einer if-Anweisung ausgeben lassen.
    Also zum Verständnis:
    Der Div #rot soll bei einer Auflösung von mindestens 1200px ausgegeben werden.
    Der Div #gruen soll dann ausgegeben werden wenn die Auflösung kleiner als 1200px ist.

    Die if-Anweisung sieht dann so aus:
    PHP:
    1.         <?php
    2.         if('min-width: 1200px'){
    3.             echo '<div id="rot"></div>';
    4.         }
    5.         else {
    6.             echo '<div id="gruen"></div>';
    7.         }
    8.         ?>
    Es wird aber nur #div rot ausgegeben auch wenn ich die Bildschirmbreite verringere.
    Was mache ich falsch?
    Ich hoffe ihr könnt mir hier weiterhelfen
    Danke im voraus.
     
    #1      
  2. Duddle

    Duddle Posting-Frequenz: 14µHz

    Dabei seit:
    03.02.2006
    Beiträge:
    3.864
    Geschlecht:
    männlich
    Ort:
    Dresden
    Problem mit einer simplen if-Anweisung
    Du wirfst hier mehrere Sprachen und Verantwortlichkeiten durcheinander. Abgesehen von der falschen Syntax solltest du dir erstmal klar machen, warum das nicht funktionieren kann.

    PHP ist eine serverseitige Sprache. Das heisst, du als Endnutzer bekommst immer nur ein Ergebnis zu sehen. Dieses wird zwar dynamisch beim Server erzeugt (und kann entsprechend auf bestimmte Dinge reagieren), aber dein Browser bekommt immer nur die Endausgabe zu sehen.
    Deshalb wird (abgesehen von irgendwelchen Hacks, die wir hier mal ignorieren) PHP niemals auf eine clientseitige Änderung wie dem Verändern der Browsergröße reagieren.

    Eine clientseitige Sprache wie JavaScript hingegen läuft bei dir lokal, kann also bei lokalen Ereignissen handeln. JS wurde und wird daher noch recht häufig für das "responsive Webdesign" eingesetzt. Das ist ja offensichtlich dein Ziel.

    Noch besser dafür sind dynamische CSS-Eigenschaften. CSS dient (größtenteils) zum Definieren des Aussehens deiner HTML-Elemente. Früher war das auf statische Regeln beschränkt (ergo Dynamik durch JS), aber dann wurden Media Queries in den Standard eingeführt, die Fallunterscheidungen und damit die Anpassung aufgrund von Browser-Parametern live erlauben.

    Kurz: schau dir entweder Media Queries oder JavaScript an, wenn responsive Webdesign dein Ziel ist. PHP ist dafür der falsche Ansatz.

    Abgesehen davon wirft deine Fallunterscheidung immer den Wahr-Fall (rot) aus, weil nicht-leere Strings in PHP als "true" evaluiert werden.


    Duddle
     
    #2      
    neudenk gefällt das.
  3. sindyho0374

    sindyho0374 Nicht mehr ganz neu hier

    Dabei seit:
    30.09.2010
    Beiträge:
    76
    Geschlecht:
    weiblich
    Problem mit einer simplen if-Anweisung
    Okay leuchtet ein.
    Mit mediaquerys habe ich mich schon oft beschäftigt und das is ja auch nicht schwer zu kapieren.
    Ich habe vielleicht bei meiner Fragestellung den Fehler gemacht das ich mit Divs versucht habe das Problem zu erklären.
    Eigentlich ist ja vorgesehen eine Navigation bei einer Auflösung von mindestens 1200 Pixel anzeigen zu lassen die sich von einer Responsiven Navigation deutlich unterscheidet vom Aufbau und Verhalten.
    Deshalb dachte ich mir das ich es auf diese Art und Weise lösen kann.
     
    #3      
  4. msa1989

    msa1989 Bin da

    Dabei seit:
    24.11.2007
    Beiträge:
    161
    Geschlecht:
    männlich
    Problem mit einer simplen if-Anweisung
    Korrigiert mich, aber soweit ich weiß kann man mit PHP nicht die Fenstergröße des Browsers feststellen.

    Du hast jetzt zwei Möglichkeiten:
    1. Du machst beide Menüs komplett fertig und blendest über Media Queries das entsprechende Menü ein. Der Quellcode ist folglich immer komplett auf der Seite. (ich denke ich würde es so machen)
    2. Du erkennst mit PHP ob es sich um ein mobiles Gerät handelt (da gibts bei Github diverse Skripte die zuverlässig erkennen ob es ein Mobiltelefon, Tablet etc. ist) und bindest dann je nach Bedarf das passende Menü ein. Hier gehst du halt dann davon aus, dass wenn es als Handy erkannt wird, das nur eine gewisse Breite zur Verfügung steht.
     
    #4      
  5. owieortho

    owieortho Aktives Mitglied

    Dabei seit:
    25.06.2010
    Beiträge:
    624
    Geschlecht:
    männlich
    Ort:
    9.8241,51.3515
    Software:
    PS CS5, HomeSite
    Kameratyp:
    Casio EX-FH20
    Problem mit einer simplen if-Anweisung
    Ich habe mal einen gut 10 Jahre alten Schnipsel ausgegraben, wo man das Zusammenspiel von client- und serverseitigem Skript gut sehen kann:
    PHP:
    1. <?php
    2. if ($res) {
    3. echo "<body background=\"../images/bg3" . $res . ".jpg\">";}
    4. else {
    5. echo "<body>
    6. <script language=\"Javascript\">
    7. <!--
    8.  
    9. if (screen.width <= 640) {
    10. document.location = \"index.php?res=vga\";
    11. }
    12.  
    13. else if (screen.width <= 800) {
    14. document.location = \"index.php?res=svga\";
    15. }
    16.  
    17. else if (screen.width <= 1024) {
    18. document.location = \"index.php?res=xga\";
    19. }
    20.  
    21. if (screen.width > 1024) {
    22. document.location = \"index.php?res=xga\";
    23. }
    24.  
    25. //-->
    26. </script>"
    27. ;
    28. }
    29. ?>
    Das JS ermittelt die Bildschirmbreite und verweist dann per entsprechender GET-Anweisung die index.php auf das zu wählende Hintergrundbild. Mit mediaqueries ist das natürlich weitaus bequemer, es geht aber nur um die grundsätzliche Idee...

    O.
     
    #5      
    neudenk gefällt das.
x
×
×