Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][js]Pobieranie rozdzielczości
vonski
post
Post #1





Grupa: Zarejestrowani
Postów: 292
Pomógł: 89
Dołączył: 27.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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.

Ten post edytował vonski 30.01.2007, 12:23:27


--------------------
Zend Certified Engineer | Microsoft Certified Professional: Programming in HTML5 with JavaScript & CSS3 | Blog
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
kornel-php
post
Post #2





Grupa: Zarejestrowani
Postów: 210
Pomógł: 20
Dołączył: 7.07.2006
Skąd: Krotoszyn

Ostrzeżenie: (0%)
-----


  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...


--------------------
:)
Go to the top of the page
+Quote Post
Nitro
post
Post #3





Grupa: Zarejestrowani
Postów: 56
Pomógł: 0
Dołączył: 10.03.2003
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


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


--------------------
e-Złota Rybka
Life: lllllllllllllllllllllllll 27%
Go to the top of the page
+Quote Post
lopik
post
Post #4





Grupa: Zarejestrowani
Postów: 340
Pomógł: 0
Dołączył: 7.07.2006

Ostrzeżenie: (0%)
-----


A nie mógł być tego całego skryptu zrobić w JS + DOM questionmark.gif
Bo możliwość taka jest.

Ten post edytował lopik 31.01.2007, 01:14:48


--------------------
w3c & c++
Go to the top of the page
+Quote Post
Mike122
post
Post #5





Grupa: Zarejestrowani
Postów: 253
Pomógł: 1
Dołączył: 12.04.2006

Ostrzeżenie: (0%)
-----


  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.


Ten post edytował Mike122 31.01.2007, 17:57:25


--------------------

Największy błąd ze wszystkich błędów to nie słuchać dobrych rad. Nikt nie jest doskonały i nie należy się obrażać za konstruktywną krytykę.
Go to the top of the page
+Quote Post
lopik
post
Post #6





Grupa: Zarejestrowani
Postów: 340
Pomógł: 0
Dołączył: 7.07.2006

Ostrzeżenie: (0%)
-----


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 ?


--------------------
w3c & c++
Go to the top of the page
+Quote Post
Mike122
post
Post #7





Grupa: Zarejestrowani
Postów: 253
Pomógł: 1
Dołączył: 12.04.2006

Ostrzeżenie: (0%)
-----


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

Ten post edytował Mike122 31.01.2007, 11:45:27


--------------------

Największy błąd ze wszystkich błędów to nie słuchać dobrych rad. Nikt nie jest doskonały i nie należy się obrażać za konstruktywną krytykę.
Go to the top of the page
+Quote Post
lopik
post
Post #8





Grupa: Zarejestrowani
Postów: 340
Pomógł: 0
Dołączył: 7.07.2006

Ostrzeżenie: (0%)
-----


Takie sobie proste:

Kod
            function onload()
            {
                var css = document.getElementsByTagName('link')[0];            
                if (screen.width > 1024)
                {
                    css.href = "styles.css";
                }
            }


--------------------
w3c & c++
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 12:52