Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php+js] i rozdzielczość ekranu
Forum PHP.pl > Forum > Przedszkole
atomek_16
Witam!

Otóż mam taki problem: muszę w echo "" podać rozdzielczość ekranu jaką dany użytkownik właśnie ma ustawioną. Nie znalazłem tego w PHPTurtorial, ale jedynie w java.

Taki kod:
Kod
<script language="JavaScript">
document.cookie = "dlugosc="+screen.width;
document.cookie = "szerokosc="+screen.height;


Pozwala mi w echo wyświetlić rozdzielczość:
echo "$dlugosc / $szerokosc"

ale problem taki, że to cookies i po zmianie rozdzielczości z 800x600 na większą nadal pokazuje, że użytkownik ma 800x600

Proszę pomóżcie

Pozdrawiam
atomek_16
Cytat(fiszol @ 2006-02-15 17:18:44)

Usiłuję zrobić coś takiego:

Kod
<script language="JavaScript">
test= "test="+screen.height;
</script>

<?
echo "$test";
?>


i nie chce mi działać sad.gif czemu?
fiszol
Nie możesz się tak poprostu odwołać w php do zmiennej z JavaScript, najpierw ją musisz jakoś złapać - np. metodą _GET. Przestudiuj przykład do którego Ci podałem adres a napewno sobie poradzisz
berdyk
wykorzystując kod z manuala php
mam plik test.php z kodem HTML, includem PHP i JavaScriptem:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <title>...</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  6. </head>
  7. <script language="javascript">
  8. <!--//
  9. // Define variables
  10. if (navigator.appname != 'Netscape') {color= "color="+screen.colorDepth+"&";}
  11. else {color = "color="+screen.pixelDepth+"&";}
  12. avail = "avail="+screen.availwidth+"x"+screen.availheight+"&";
  13. res = "res="+screen.width+"x"+screen.height;
  14. isize = '" width="1" height="1" border="0"';
  15. // Generate img tag
  16. img = '<img name="img" src="javascript.php?'+color+avail+res+isize+'">';
  17. //Print it to browser
  18. document.write(img);
  19. //-->
  20. <?php
  21. include("./javascript.php");
  22. ?>
  23.  
  24. </body>
  25. </html>


oraz plik javascript.php o nienastępującym kodzie

  1. <?php
  2. // Get the vars from the javascript
  3. $res = $_GET['res'];
  4. $avail_res = $_GET['avail'];
  5. $color_depth = $_GET['color'];
  6. echo 'You Screens Resolution is $res, Your Available Screen Resolution is $avail_res, 
    and the Color Depth on your screen is $color_depth.'
    ;
  7.  
  8. ?>


no i w echo nic sie nie wyświetla ze zmiennych

co robie źle questionmark.gif

chciałbym żeby w pliku test.php pokazywały się wartości zmiennych przekazywanych przez JavaScript do pliku javascript.php

proszę o wskazówki
phpion
A nie możecie po prostu skorzystać z document.getElementById('id').innerHTML questionmark.gif
berdyk
można jaśniej questionmark.gif


Mi chodzi o dostęp do tych zmiennych PHP w kodzie strony test.php a nie tylko wyświetlenie zmiennych - danych z JavaScriptu
phpion
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4.  
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. <script type="text/javascript">
  7. function myFun() {
  8. document.getElementById('id').innerHTML = 'Twoja rozdzielczość to '+ screen.width + 'x' + screen.height;
  9. }
  10. </script>
  11. </head>
  12.  
  13. <input type="button" onclick="myFun();" value="Pokaż" />
  14. <div id="id"></div>
  15.  
  16. </body>
  17. </html>
berdyk
No ok, ale jeśli od $zmiennych PHP chcę uzależnić dalszą część kodu, np co ma zrobić Controler jaki templat wybrać to mi nic po stronie przeglądarki java nie da. potrzebuje mieć wartości z Javy (bez reload strony) w zmiennych PHP i dalej w pliku test.php

możesz pomódz
phpion
No to chyba nie pozostaje nic innego jak:
index.html - wysyla cookies spod js na temat rozdzielczości po czym od razu przekierowuje na index.php (przekierowania nawet nie zuważysz)
berdyk
Cytat(fiszol @ 15.02.2006, 19:18:44 ) *

tu napisali ze nie muszę strony przeładowywać czy przekierowywać
zobacz

Cytat
jasonpb at bellsouth dot net 30-Sep-2003 08:29



Another good way for passing javascript to php without having to have a page reload is to use an img tag.

(example)
Add this where you want to collect the vars from
This can also be a .html page
<script language="javascript">
<!--//
// Define variables
if (navigator.appname != 'Netscape') {color= "color="+screen.colorDepth+"&";}
else {color = "color="+screen.pixelDepth+"&";}
avail = "avail="+screen.availwidth+"x"+screen.availheight+"&";
res = "res="+screen.width+"x"+screen.height;
isize = '" width="1" height="1" border="0"';
// Generate img tag
img = '<img name="img"
src="javascript.php?'+color+avail+res+isize+'">';
//Print it to browser
document.write(img);
//-->
</script>

Now you have the javascript vars passed along to the javascript.php page, all thats left is to add a couple lines of php code to gather the info up.

(example)
<?
// Get the vars from the javascript
$res = $_GET['res'];
$avail_res = $_GET['avail'];
$color_depth = $_GET['color'];
// Do something with the info
echo "You Screen's Resolution is $res, Your Available Screen Resolution is $avail_res, and the Color Depth on your screen is $color_depth.";
?>
Thats it!!
Hope it may help someone!
szawel
<script language="Javascript">
<!--


document.write('Twoja rozdzielczośc ekranu to ' + screen.width + ' and ' + screen.height + '.')
//-->
</script>
berdyk
Cytat
<script language="Javascript">
<!--
document.write('Twoja rozdzielczośc ekranu to ' + screen.width + ' and ' + screen.height + '.')
//-->
</script>


szawel: czytałeś post od początku
przecież nie o to chodzi co by wyświetlić za pomocą javascript rozdzielczość
tylko o to by zrobić to za pomocą PHP
Cienki1980
Jeżeli się nie mylę to include ('javascript.php') nie zadziała.
W kodzie Javascript ( tak przy okazji chociaż pewnie wiesz nie pisz Java jak mówisz o Javascript bo ktoś bardziej wrażliwy za to Ciebie zjedzie ) wysyłasz zawartość zmiennej img poprzez document.write(img).

Czyli nie inkludujesz tego pliku ale dążysz do tego, żeby zrobić takie coś:
  1. <img src="nazwaplikuphp.php?get1=war1&get2=war2">


Nie wiem czy jasno pisze i czy jasno myślę, ale to być powinno jakoś tak chyba biggrin.gif
berdyk
Cytat(Cienki1980 @ 24.07.2007, 20:52:20 ) *
( tak przy okazji chociaż pewnie wiesz nie pisz Java jak mówisz o Javascript bo ktoś bardziej wrażliwy za to Ciebie zjedzie )


OK zapamiętam, choć wiem o tym że to dwa różne zagadnienia

Cytat(Cienki1980 @ 24.07.2007, 20:52:20 ) *
Jeżeli się nie mylę to include ('javascript.php') nie zadziała.


ano nie dział

i właśnie o to mi chodzi

jak wyciągnąć z pliku javascript.php zmienne

  1. <?php
  2. $res = $_GET['res'];
  3. $avail_res = $_GET['avail'];
  4. $color_depth = $_GET['color'];
  5. ?>


i umieścić ich wartości w pliku test.php BEZ PRZEŁADOWNIA STRONY (pliku test.php)
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.