Forum FAQForum FAQSearchSearch MemberlistMemberlist Forum ignore listForum ignore list RegisterRegister ProfileProfile Log in to check your private messagesLog in to check your private messages Log inLog in
Kako dobiti rezoluciju korisnickog monitora koristeci PHP?

 
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    mi3dot.org Forum Index -> Server-side
View previous topic :: View next topic  
Author Message
Limeni



Joined: 13 Nov 2007
Posts: 109

PostPosted: 19.01.2009 23:36    Post subject: Kako dobiti rezoluciju korisnickog monitora koristeci PHP? Add user to your forum ignore list Reply with quote

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();
            
            document.cookie = 'reza=' + reza + ';' + 'expires=' + expires;
         
        </script>
       
        <?php $reza = $_COOKIE['reza'];?>
               
        <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>
   
    <body>
     
      <?php $width = "<script type='text/javascript'>document.write(screen.width)</script>"; ?>
       
        <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 02:16; edited 1 time in total
Back to top
View user's profile Send private message
sphx



Joined: 02 Jun 2004
Posts: 109
Location: Split

PostPosted: 20.01.2009 01:39    Post subject: Add user to your forum ignore list Reply with quote

neće tako ići, zaboravi Wink

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:

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>primjer</title>
<link href="style.css" rel="stylesheet" type="text/css" />
<script language="javascript">

function resize()
{
   document.getElementById('resajz').style.width = screen.width + 'px';
}

</script>
</head>

<body onload="resize();">
<div id="resajz" style="height:500px; width: 200px; background:red;"></div>
</body>
</html>
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
Limeni



Joined: 13 Nov 2007
Posts: 109

PostPosted: 20.01.2009 02:13    Post subject: odlicno... Add user to your forum ignore list Reply with quote

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 Smile

Super si ovo napravio sa JavaScriptom Smile 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 Smile
Back to top
View user's profile Send private message
Display posts from previous:   
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    mi3dot.org Forum Index -> Server-side All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  
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


Powered by phpBB © 2001, 2005 phpBB Group