Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: php- dstosowywanie strony względem rozdzielczości
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
tasche
Witam..
Rozwiązałem jwój problem z zrobieniem strtony w 800*600 jednak wyszla ona troche dziwna
Postanowiłem napisać fajny skrypt który będzie dostosywał rozdzielczośc użytkownika do strony
np wchodzi gosc z rozdzielczoscia 800*600 i laduje mu sie strona z folderu 800_600
inny ma z rozdzielczoscia 1024*768 i laduje mu sie strona z folderu 1024_768
inny gosc ma zas rozdzielczosc niezindifikowana(np. 1152*864) i laduje mu sie strona zalecana z folderu 1024*768

Zupelnie nie wiem jak to zrobiC

Prosze o pomoc sadsmiley02.gif
Chewolf
Niestety nie ma jednoznaczenego rozwiązania tego problemu. Aby przekierować użytkownika do odpowiedniej wersji strony potrzebne ci jest Javascript. Wczytujesz jaka ma rodzielczość a nastepnie za pomoca warunku if przenosisz pod odpowiedni adres. To rozwiazania ma wade poniewaz nie zadziala jeśli ktos nie bedzie mial wlaczonej obslugi JS.
Przykładowy kod:
Kod
<script language="javascript" type="text/javascript">
var Wide = screen.width;
if (Wide <=  640) window.location = "800x600/index1.html";
if (Wide <=  800) window.location = "800x600/index2.html";
else if (Wide <= 1024) window.location = "1024x768/index1.html";
else                   window.location = "1024x768/index2.html";
</script>


Proszę o przeniesienie do JS
bregovic
W sumie rozwiązanie z JS jest dobre, ale najlepiej napisać stronę która dopasowywuje się dynamicznie do szerokości okna przeglądarki.
DartMoor
Kod
// test.php

<?php

session_start();
session_register("wysokosc");
session_register("szerokosc");
$_SESSION["wysokosc"]=$_GET["height"];
$_SESSION["szerokosc"]=$_GET["width"];
?>



// index.php

<script language="JavaScript" type="text/javascript">
<!--

document.write("<img width="+screen.width+" height=1 border=0 src=test.php?width="+screen.width+"&height="+screen.height+"&depth="+screen.colorDepth+" >");

//-->
</script>


if(!$_SESSION["wysokosc"] AND !$_SESSION["szerokosc"])
{
echo "<meta http-equiv=\"refresh\" content=\"0; url=$PHP_SELF\">";
}

function szerokosc($p)
{
$szer = $_SESSION["szerokosc"];
if($szer<200)
{
$szer=1280;
}


$roz = $szer * $p / 100;


return $roz . "px";
}

function wysokosc($p)
{
$wys = $_SESSION["wysokosc"];
if($wys<200)
{
$wys=1024;
}

$roz = $wys * $p / 100;


return $roz . "px";
}


Moze to komus sie przyda, sugestie co do zmiany skryptu mile widziane
mateu07
Dlaczego
  1. <script language="javascript">
  2. window.location="index.php?page=glowna&lang=pl&width="+screen.width+"&height="+screen.height;
  3. function onColor(blah)
  4. {
  5. blah.style.backgroundColor='#CDCDCD';
  6. }
  7.  
  8. function offColor(blah)
  9. {
  10. blah.style.backgroundColor='#F0F0F0';
  11. }
  12. function displayWindow(url, width, height) {
  13. var Win = window.open(url,"displayWindow",'width=' + width + ',height=' + height +
  14. ',left=50,top=50,resizable=1,scrollbars=yes,menubar=no' );
  15. }

Powoduje mi zapetlenie? Cos takiego wychodzi:
http://szkola.nastawnia.org/index_bad.php
?
revyag
Ustawiasz ciągle window.location. Zobacz, strona się ładuje,odpala się skrypt, window.location powoduje przedładowanie strony, czyli strona znowu się odpala i tak w kółko.
mateu07
Czyli powinno byc... ?
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.