francoisch Posté 2 Avril 2007 Posté 2 Avril 2007 bonjour Jessaye dobtenir en Javascript et d'utiliser en PHP, la résolution de l'écran : width et height. Jessaie avec ce code de test : echo "<script language=\"JavaScript\"> <!-- document.location=\"$PHP_SELF?r=1&Largeur=\"+screen.width+\"&Hauteur=\"+screen.height; //--> </script>"; echo 'size x ' . $_GET['Largeur'] . '<br/>'; mais je ne récupère rien. Je dois ensuite utiliser les variables Largeur et Hauteur en PHP, pas en Javascript. Merci par avance de maider à trouver la solution. F
georges Posté 2 Avril 2007 Posté 2 Avril 2007 (modifié) salut, en js, "écrire" s'écrit document.write() ... ce que je veux dire, c'est que là en l'occurrence, ton js est "muet"... Modifié 2 Avril 2007 par georges
ghost Posté 3 Avril 2007 Posté 3 Avril 2007 Salut, Juste pour l'idée <?phpif (isset($_GET['largeur']) AND isset($_GET['hauteur'])) { // Affichage des variables $largeur_ecran = $_GET['largeur']; $hauteur_ecran = $_GET['hauteur']; $hauteur_bloc = $hauteur_ecran-100; } else { // passage des variables de dimensions du java script au php par $_GET; echo "<script type=\"text/javascript\">\n";echo "if (document.body) {var larg = (document.body.clientWidth);var haut = (document.body.clientHeight);} else { var larg = (window.innerWidth);var haut = (window.innerHeight);}"; echo " location.href=\"${_SERVER['SCRIPT_NAME']}?${_SERVER['QUERY_STRING']}" . "&largeur=\" + larg + \"&hauteur=\" + haut;\n"; echo "</script>\n"; exit();}?>
francoisch Posté 3 Avril 2007 Auteur Posté 3 Avril 2007 bonjour et merci de vos réponses. Comme je suis un petit joueur au jeu des développements JS et Php, je m'interroge sur ce que vous me dites. Oui, mon Js est muet, il ne donne rien mais je ne sais pas comment le faire parler. Sinon, j'ai essayé le code de Ghost pour voir ce que ça donne: rien; j'imagine que ça n'est qu'un exemple mais, pour moi, c'est déjà trop loin. J'ai essayé de le comprendre mais sans succès. Merci de votre aide mais je ne suis pas encore arrivé; il faut que je continue à creuser ce sujet. Merci par avance à ceux qui pourraient complèter la leçon. Francois
francoisch Posté 3 Avril 2007 Auteur Posté 3 Avril 2007 Ghost, en essayant de faire une lecture de ton script: - les 4 premières lignes en Php disent que si le GET fonctionne, les variables largeur_ecran et hauteur_ecran sont initialisées ce que je ne vois pas, c'est où le GET va chercher les valeurs (pour moi, GET prend dans l'URL) - ensuite le ELSE (le GET n'a pas marché) nous met en Js pour initialiser larg et haut et lancer un ordre ce que je ne vois pas, c'est l'intérêt de faire du JS après le Php Dans mon idée, pour trouver ces valeurs, on fait d'abord du Js et on passe les valeurs trouvées en Php; non? C'est ce que j'essaie de faire sans y arriver; j'essaie de comprendre où sont mes erreurs et ça ne m'est pas facile. Merci à tous. Francois
francoisch Posté 3 Avril 2007 Auteur Posté 3 Avril 2007 Encore moi; pour tout vous dire, j'essaie de m'inspirer de cet exemple: <script type="text/javascript"><!-- debutfunction resolution() {document.location="<?php echo $_SERVER['PHP_SELF']; ?>?width="+screen.width+"&height="+screen.height;}// fin --></script></head><?phpif(!isset ($_GET['width']) and !isset ($_GET['height'])){echo '<body onload="resolution();">';}else{echo '<body>';echo 'Votre résolution est ' . $_GET['width'] . ' * ' . $_GET['height'];}?> Simplement, avec cette solution, il faut de j'inscrive le Js en ordres Php. Il me reste un bout à faire. Francois
Dadou Posté 3 Avril 2007 Posté 3 Avril 2007 Que dois tu faire des valeurs largeur et hauteur une fois obtenues?
ghost Posté 3 Avril 2007 Posté 3 Avril 2007 Re, Désolé, je suis allé un peu vite: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"><style></style><head><title></title></head><body><?phpif (isset($_GET['largeur']) AND isset($_GET['hauteur'])) { // Affichage des variables $largeur_ecran = $_GET['largeur']; $hauteur_ecran = $_GET['hauteur']; echo 'largeur de l\'écran : '.$largeur_ecran.' px <br/> Hauteur de l\'écran : '.$hauteur_ecran.' px <br/>'; echo 'De l\'écran et non de la page !!!';} else { // passage des variables de dimensions du java script au php par $_GET echo "<script type=\"text/javascript\">\n"; echo " location.href=\"${_SERVER['SCRIPT_NAME']}?${_SERVER['QUERY_STRING']}" . "&largeur=\" + screen.width + \"&hauteur=\" + screen.height;\n"; echo "</script>\n"; exit();}?></body></html> La seule manière que je connaisse de passer une variable de JS à PHP, c'est par $_GET donc on teste les variables, si elles existent ... on continue le code sinon on passe à JS qui détermine $longueur et $largeur et qui recharge la page ... Pour le $_get que tu utilises aussi, il est bien "transmis" par l'url à condition de changer de page ou de recharger la même, c'est là que tu devais coincer. Voilou Ps: le calcul donne la résolution de l'écran et non la largeur et longueur de la page du navigateur, ça c'est une autre histoire qui est très peu fiable pour qui serait tenter de l'utiliser pour la mise en page d'un code html.
Anonymus Posté 4 Avril 2007 Posté 4 Avril 2007 Bonjour, Il serait étonnant que tu aies réellement besoin de connaitre la largeur et la hauteur de l'écran en php. La plupart (quasiment tous) des besoins se traduisent en javascript, et non en php : En gros, au lieu de passer les variables de javascript à php, fais ce dont tu as besoin en javascript, au lieu de 'revenir' au php. Pour bien comprendre, il faut savoir que php est exécuté sur le serveur, alors que javascript est exécuté sur le poste 'client', autrement dit sur le poste de l'internaute. Donc > Tu fais ton programme en php, et tu envoies le résultat sur le navigateur du client, et tu laisses javascript récupérer la hauteur/largeur, et la traiter, sans refaire appel au serveur, à php. Le code de Ghost utilise une méthode assez répandue > IF (condition){ code si vrai } ELSE{ code si faux } Comme ton code retournera 'faux' (comme tu l'as signalé), ca sera la boucle 'ELSE' qui sera exécutée. Or celle ci renvoie sur la même page, avec les valeurs de largeur/hauteur. Le code s'exécute alors une seconde fois, et là, les valeurs sont initialisées (comme signalé ci-dessus), et c'est la boucle 'IF' qui s'exécute. Le problème de ce script est qu'il fait appel à la page 2 fois : une fois pour initialiser la hauteur/largeur, une fois pour prendre en compte cette hauteur/largeur. Le problème est que tu n'as pas trop le choix, pour retourner les valeurs à ton php. Seulement, comme je le mentionnais plus haut, il serait peut être plus facile de faire la suite en javascript. Pour cela, il nous faudrait déjà savoir de quoi il en retourne par la suite : Pourquoi as tu besoin des hauteur/largeur ?
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant