Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][js]Pobieranie rozdzielczości
Forum PHP.pl > Forum > Przedszkole
vonski
Witam.
Mam taki kod:

  1. <?php
  2. $r = "<script type=text/javascript> document.write (+screen.width);
  3. </script>";
  4.  
  5. echo $r;
  6.  
  7. if ($r == 1024)
  8.  
  9. {
  10. echo "<link rel='stylesheet' href='arkusz1.css' type='text/css' />";
  11. }
  12.  
  13. ?>


Gdzie $r jest to zmienna przechowująca aktualną szerokość ekranu. Chciałem zrobić tak, że jeżeli szerokość jest 1024 to ma dołączać się dany arkusz styli arkusz1.css .
Niestety tak się nie dzieje :-/ Tylko dlaczego? Nawet jeśli zmienna $r przybiera wartość 1024 to ten if{$r == 1024} nie reaguje na to..
Czy ktoś wie jak sobie z tym poradzić?
Z góry dzięki za pomoc.

EDIT:

Jeszcze dodam tyle, że jak daje echo $r to wyświetla mi 1024.
A w tym if'ie ta zmienna $r jest równa 0, bo jak dam if($r == 0) to wtedy jest dołączany dobry arkusz.
kornel-php
  1. <?php
  2. $r = "<script type=text/javascript> document.write (+screen.width);
  3. </script>";
  4.  
  5. echo $r;
  6.  
  7. if ($r == '1024') // spróbuj tak, ew. cudzysłów
  8.  
  9. {
  10. echo "<link rel='stylesheet' href='arkusz1.css' type='text/css' />";
  11. }
  12.  
  13. ?>


Daj w ifie 1024 w ciapkach, bo zmienna $r to prawdopodobnie string, więc spróbuj tak...
Nitro
Cytat(vonski @ 30.01.2007, 14:16:30 ) *
Jeszcze dodam tyle, że jak daje echo $r to wyświetla mi 1024.
A w tym if'ie ta zmienna $r jest równa 0, bo jak dam if($r == 0) to wtedy jest dołączany dobry arkusz.


JS działa po stronie przeglądarki, php po stronie serwera winksmiley.jpg Twój kod, a dokładnie echo $r wyświetla 1024 nie dlatego, że zmienna $r ma taką wartość, ale dlatego, że tak naprawdę to $r równe jest
  1. <script type=text/javascript> document.write (+screen.width);</script>

co po stronie przeglądarki interpretowane jest przez nią i wyświetla Ci szerokość ekranu winksmiley.jpg
lopik
A nie mógł być tego całego skryptu zrobić w JS + DOM questionmark.gif
Bo możliwość taka jest.
Mike122
  1. <?php
  2. if ($_COOKIE['width_cookie']){
  3. if($_COOKIE['width_cookie'] == 1024){
  4. echo "<link rel="stylesheet" href="arkusz1.css" type="text/css" />";
  5. }
  6. }else{
  7. echo "<script type="text/javascript">n";
  8. echo "// <![CDATA[n";
  9. echo "document.cookie = "width_cookie="+screen.width;n";
  10. echo "window.location = "".$_SERVER['REQUEST_URI']."";n";
  11. echo "// ]]>n";
  12. echo "</script>n";
  13. }
  14. ?>



JavaScript - działa po stronie przeglądarki "client-side"
php - działa po stronie serwera "server-side"
Więc chyba cookie będzie najlepszym rozwiązaniem.
lopik
Cytat
Więc chyba cookie będzie najlepszym rozwiązaniem.

Jest możliwość zrobić to za pomocą DOM + JS

Bo jeśli dobrze rozumiem, chodzi o zmianę CSS"a przy rozdzielczości wyższej od 1024 ?
Mike122
Cytat
Jest możliwość zrobić to za pomocą DOM + JS

~lopik ja podałem proste rozwiązanie. I pomyślałem że będzie dość dobre. smile.gif
Sam ~vonski w temacie napisał [php][js] więc podałem przykład rozwiązania w php i JS biggrin.gif
lopik
Takie sobie proste:

Kod
            function onload()
            {
                var css = document.getElementsByTagName('link')[0];            
                if (screen.width > 1024)
                {
                    css.href = "styles.css";
                }
            }
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.