Posted: 20.01.2009 00:36 Post subject: Kako dobiti rezoluciju korisnickog monitora koristeci PHP?
Znaci zelim sa PHP-om generirati sirinu boxa ovisno o tome koju rezoluciju ekrana ima korisnik. Napravio sam dva primjera ali niti jedan ne radi kako treba pa ako moze mala pomoc od iskusnijih PHP programera...
PRIMJER 1:
Sa JavaScriptom pokupim sirinu ekrana i to spremim u cookie, onda napravim php varijablu $reza u koju spremim vrijednost tog cookia i sa <?php $reza ?> embedam tu rezoluciju gdje god mi zatreba. Kod je dolje, problem kod ovoga je sto kad se stranica prvi puta ucita varijabla $reza u sebi nema vrijednost rezolucije, tek kad ju drugi put ucitam onda sve funkcionira kako treba. Nije mi jasno zasto iz prve nije kako treba?!? Kao da prvi put spremi cookie a tek drugi put onda php ucita iz cookia vrijednost i stavi u varijablu $reza koju onda koristi kako treba? Znam daj je JavaScript na mojoj strani a PHP na serveru al zar ovo nebi trebalo radit?
KOD PRIMJERA 1:
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Server side programming</title>
</head>
<body>
<script type="text/javascript">
var width = screen.width;
var reza = width + "px";
var expires = new Date();
expires.setDate(expires.getDate() + 7);
var expires = expires.toGMTString();
<div style="width:<?php echo $reza; ?>; background-color: blue;">
<p>Ovaj box ima sirinu od <?php echo $reza ?>!</p>
</div>
</body>
</html>
PRIMJER 2:
Tu sam pokusao sa php-om ispisat (screen.width) i to spremit u php varijablu $reza i poslije korisiti kad mi zatreba. Sad problem je sto kad napravim <?php echo $reza ?> on uredno ispise vrijednost rezolucije ali kad tu rezoluciju pokusam upotrijebiti u style onda ne radi... hm... jel se moze uopce ovaku spremati varijabla iz JavaScripta?
KOD PRIMJERA 2:
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Server side programming</title>
</head>
<div style="width: <?php echo $width; ?>px; background-color: blue;">
<p>Ovaj box ima sirinu od <?php echo $reza ?>!</p>
</div>
</body>
</html>
Eh i da, vidio sam da postoji nekoliko nacina na koje se varijable iz JavaScripta mogu proslijediti dalje do PHP-a, ja bas zelim ovo napraviti pomocu cookia. Prvi primjer bi volio slozit da radi kak spada.
Last edited by Limeni on 20.01.2009 03:16; edited 1 time in total
gle kako stvar radi: sav php se prvo izvrši na serveru, onda se html u tekstualnom obliku šalje klijentu. dakle sav php kod se izvršava PRIJE javascripta, koji je isključivo klijentski. pošto želiš dohvatiti vrijednost koju je moguće dobiti isključivo s klijentske strane, ti nakon učitavanja stranice kod klijenta trebaš izvršiti javascript i rezultat nekako poslati natrag na server (ajax tu uskace).
sad, koji je razlog zbog kojeg tebi treba širina prozora ? ovaj problem možeš rješiti i ovako samo javascriptom:
Hvala sphx, ma netreba mi sirina prozora, nego ucim lagano php i zanima me na koji nacin to sve skupa funkcionira i kako se koriste JS varijable u PHP-u i obrnuto, pa mi je ovo bio zgodan primjer da se poigram...
Ovaj prvi primjer jos nekak i radi al drugi primjer nikak ne radi jer on u $reza ne spremi broj jednak sirini rezolucije nego spremi sve kao string "<script type="text/java.... </script>" Spremi kompletan kod i kad ga se embeda u stye tag on ga ispise kako kompletan string i ne prepozna ga pa ga izostavi i, zato se nevidi u source-u. A kad se koristi echo onda normalno radi jer se prije izvrti na serveru i vrati mi samo vrijednost. Onda sam pak mislio ispisat sa <?php echo <p id="reza">$width;</p> ?> i pokusat ga pokupit sa document.getElementById(reza); al nema to sve smisla, svasta sam kombinirao
Super si ovo napravio sa JavaScriptom Svaka cast.
A da mi treba tak nest vjerovatno bi koristio samo width: 100%; u CSS-u i super.
Hvala ti na odgovoru i objasnjenju, sad su mi neke stvari jasnije
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum