Détection résolution écran

  • Auteur de la discussion Auteur de la discussion toto2525
  • Date de début Date de début
WRInaute occasionnel
Salut,

Je souhaite connaitre la résolution d'écran de mes internautes, j'ai lu qu'avec php ce n'était pas possible et qu'il fallait passer par du javascript (screen.height; et screen.width;) et une redirection de l'url pour y arriver. Mais je ne souhaite pas utiliser la redirection d'url pour détecter cette résolution, j'ai donc écrit ce bout de code :
Code:
<script type="text/javascript">
<!--
Ecran = screen.height;
if(Ecran<=600){<?php $hauteur_ecran = 500;?>}
if((Ecran>600)&&(Ecran<=800)){<?php $hauteur_ecran = 700;?>}
if(Ecran>800){<?php $hauteur_ecran = 800;?>}
//-->
</script>
<?php echo $hauteur_ecran;>
ça m'affiche "800" alors que mon écran est en 1280x800 pixel, ça devrait m'afficher "700", je pige pas mon erreur :(

Je souhaite pouvoir mettre la résolution (500, 700 ou 800) dans une variable php pour pouvoir l'utiliser plus bas dans mon code php.

Merci pour votre aide.
 
WRInaute accro
Tu as mis <= 800 donc la deuxième condition est réalisée, et le test s'arrête là
En mettant <800 la deuxième condition ne sera pas réalisée
 
WRInaute discret
Il manque quelque chose au code car, normalement, javascript est interprété côté navigateur donc utilisateur et php côté serveur.
Il n'est pas possible d'obtenir une valeur utilisée plus bas!
 
WRInaute occasionnel
Merci pour vos réponses.

Marie-Aude a dit:
Tu as mis <= 800 donc la deuxième condition est réalisée, et le test s'arrête là
En mettant <800 la deuxième condition ne sera pas réalisée
Ca change rien, mon écran à une hauteur de 800 pixel, tu dois donc laisser <= 800 sinon il n'y aura pas de cas pour un écran de 800.

Dan_A a dit:
Il manque quelque chose au code car, normalement, javascript est interprété côté navigateur donc utilisateur et php côté serveur. Il n'est pas possible d'obtenir une valeur utilisée plus bas!
N'est-il pas possible en javascript de créer des variables que l'on puisse ré-utiliser plus tard dans le code ?
 
WRInaute accro
Faut passer à l'Ajax alors pour la communication entre javascript/php

Ton code javascript est executé bien longtemps après que le moteur PHP ait construit la page, ça ne fonctionnera donc pas ^^
 
WRInaute occasionnel
Un truc fou :

Code:
<script type="text/javascript">
<!--
Ecran = screen.height;
if(Ecran<=600){document.write('<?php $hauteur_ecran = 400;?>');}
if((Ecran>600)&&(Ecran<=800)){document.write('<?php $hauteur_ecran = 500;?>');}
if(Ecran>800){document.write('<?php $hauteur_ecran = 600;?>');}
//-->
</script>
<?php echo $hauteur_ecran;?>
Ca affiche "600".

Mais ça :

Code:
<script type="text/javascript">
<!--
Ecran = screen.height;
if(Ecran<=600){document.write('400');}
if((Ecran>600)&&(Ecran<=800)){document.write('500');}
if(Ecran>800){document.write('600');}
//-->
</script>
Ca affiche "500".

Punaise...............
 
WRInaute occasionnel
YoyoS a dit:
Faut passer à l'Ajax alors pour la communication entre javascript/php

Ton code javascript est executé bien longtemps après que le moteur PHP ait construit la page, ça ne fonctionnera donc pas ^^
Je connais pas l'ajax, est-ce que ça serait compliqué de détecter la résolution d'écran en Ajax ?
 
WRInaute accro
toto2525 a dit:
Un truc fou :
Code:
<script type="text/javascript">
<!--
Ecran = screen.height;
if(Ecran<=600){document.write('<?php $hauteur_ecran = 400;?>');}
if((Ecran>600)&&(Ecran<=800)){document.write('<?php $hauteur_ecran = 500;?>');}
if(Ecran>800){document.write('<?php $hauteur_ecran = 600;?>');}
//-->
</script>
<?php echo $hauteur_ecran;?>
Ca affiche "600".
.

C'est normal puisque php va attribuer plusieurs valeurs à $hauteur_ecran sans prendre en compte ou même lire les conditions:

$hauteur_ecran = 400;
$hauteur_ecran = 500;
$hauteur_ecran = 600;
Dernière valeur 600 -> Ca affiche "600". cqfd
 
WRInaute accro
Oui, si JavaScript peut faire un truc, grâce à l'ajax il peut envoyer la donnée à PHP.
Je t'invite à aller lire quelques tutos sur google ^^ Et en production à utiliser le framework jQuery qui rend l'ajax très simple.

Au fait tu veux récupérer la résolution pour faire quoi ? Ca se trouve tu n'en as même pas besoin ^^
 
WRInaute occasionnel
YoyoS a dit:
Oui, si JavaScript peut faire un truc, grâce à l'ajax il peut envoyer la donnée à PHP.
Je t'invite à aller lire quelques tutos sur google ^^ Et en production à utiliser le framework jQuery qui rend l'ajax très simple.
J'utilise jQuery sur ma page :D , quel serait le code pour détecter la résolution d'écran ?
 
WRInaute occasionnel
YoyoS a dit:
YoyoS a dit:
Au fait tu veux récupérer la résolution pour faire quoi ? Ca se trouve tu n'en as même pas besoin ^^
Si tu pouvais répondre ^^
j'ai un lien html en javascript (qui ouvre une popup) et dans ce lien javascript il y a les dimensions de cette fenêtre popup, je voudrais pouvoir redimensionner cette popup en fonction de la résolution d'écran de mes internautes. Cette popup affiche des videos flash (swf) et des photos.

Voici le style de lien javascript que j'utilise pour ma popup :

Code:
<a href='javascript:PopupCentrer("../images.php?ref=332",700,600)'>Cliquez pour agrandir l'image</a>

Dans cet exemple la fenêtre popup aura une dimension de 700x600 mais si un internaute a une résolution de 1024x768 je voudrais que cette popup soit redimensionnée à 500x400 donc remplacer dans mon lien ci-dessus le "700,600" par "500,400" mais pour ça il fautconnaitre la résolution d'écran... pour lui mettre les bons paramètres dans le lien.
 
WRInaute occasionnel
spout a dit:
Et pourquoi se casser la tête avec un affreux popup et ne pas intégrer un truc un peu plus "tendance": lightbox:
http://planetozh.com/projects/lightbox-clones/
Mon souci c'est que j'ai un sorte de carousselle dans lequel est diffusé une vidéo flash ainsi que des photos, pas de soucis avec les photos tu peux utiliser ce type de lightbox mais dans mon cas c'est mixte (flash + images) et là c'est beaucoup plus problématique de faire fonctionner une lightbox à la fois pour du flash et des images, j'en ai testé pas mal de lightbox et aucune ne fait les 2 à la fois :?

J'ai une vidéo flash en format réduit qui tourne et tu ne peux pas rendre cliquable cette vidéo avec une lightbox comptatible (flash + images).... donc je suis obligé de passer par un lien javascript externe à ma video flash pour proposer aux internautes d'agrandir cette video dans une fenêtre popup.... mais j'ai trouvé une solution à mon problème que voici :

Code:
<script type="text/javascript">
<!--
Ecran = screen.height;
if(Ecran<=600){document.write('<a href='javascript:PopupCentrer(&#034;../images.php?ref=332&#034;,400,300)'>Cliquez pour agrandir l'image</a>');}
if((Ecran>600)&&(Ecran<=800)){document.write('<a href='javascript:PopupCentrer(&#034;../images.php?ref=332&#034;,500,400)'>Cliquez pour agrandir l'image</a>');}
if(Ecran>800){document.write('<a href='javascript:PopupCentrer(&#034;../images.php?ref=332&#034;,600,500)'>Cliquez pour agrandir l'image</a>');}
//-->
</script>
On détecte (sans redirection d'url) la résolution d'écran et on inclut le bon lien javascript avec les bonnes dimensions de ma fenêtre popup, et ça marche parfaitement :P Alors certe la vieille popup n'est pas très tendance mais bon elle a le mérite de fonctionner avec tout type de support (flash et images) ce qui n'est pas le cas des très tendance lightbox.... :mrgreen:
 
WRInaute accro
ne pas oublier que, maintenant, les navigateurs ne sont pas toujours utilisés en plein écran, par exemple une barre d'outils sur FF diminue la hauteur,...
 
WRInaute accro
toto2525 a dit:
faire fonctionner une lightbox à la fois pour du flash et des images, j'en ai testé pas mal de lightbox et aucune ne fait les 2 à la fois :?
Bah si il y a des scripts qui supportent les 2, cfr. les filtres par features.
 
WRInaute occasionnel
spoutBah a dit:
si il y a des scripts qui supportent les 2, cfr. les filtres par features.
J'ai pas pigé ta réponse :? , c'est quoi "les filtres par features" ?

Connais-tu une lightbox qui te permet d'afficher une image puis une video flash puis une image sans fermer et relancer l'ouverture de ta lightbox ?
 
WRInaute occasionnel
spout a dit:
Ça avait rapport avec le lien que je t'avais filé: http://planetozh.com/projects/lightbox-clones/
Je crois que tu m'avais déjà donné ce lien dans un autre post et j'avais testé la quasi totalité des lightbox présentes sur cette page et qui étaient compatibles flash + images mais aucune ne permet d'afficher à la fois de images + du flash sans fermer et relancer la lightbox, d'ou ma grande déception et frustration..... j'ai pleuré de longues nuits et me disant « maman quel monde cruel ».... et puis j'ai remonté les manches et je me suis plongé la tête dans le cambouis, y a rien de tel qu'une bonne dose de javascript + php et là bingo, je trouve MA solution à MON problème : comme quoi et comme disait notre ami Balou « il en faut peu pour être heureux, vraiment très peu pour être heureux, il faut se satisfaire d'un peu de javascript et de php .... »....
 
Discussions similaires
Haut