Récupération variables javascript avec PHP

Fermé
Utilisateur anonyme - 18 avril 2009 à 14:39
 Utilisateur anonyme - 23 avril 2009 à 21:56
Bonjour,
Voilà je suis en train de faire un site mais je me retrouvé confronté à un problème qui semble récurant.

Avec un ce script je peux récupérer les valeurs des différentes résolutions des visiteurs :

<*SCRIPT LANGUAGE="JavaScript">
EcranHaut = screen.height;
EcranLarg = screen.width;
Ecran = EcranLarg + " x " + EcranHaut;
<*/SCRIPT>

Ce script n’est pas de moi et j’avoue ne pas du tous m’y connaitre en javascript. J’aimerais donc ensuite récupérer les variables trouvées pour l’intégrer dans une formule en php qui me permet de redimensionner correctement une image voilà un exemple du code php :

Height= »< ?php echo(résolution initial * variable height/résolution initial x) ;> »

Je vous remerci d’avance.
A voir également:

18 réponses

Utilisateur anonyme
18 avril 2009 à 15:33
location("script.php?haut="+height);
0
Utilisateur anonyme
18 avril 2009 à 15:43
heu je suis désoler mais je ne voit pas trop ou mettre sa tu pourrait me le montré dans le code que je vous es fournie d'avance merci
0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 504
18 avril 2009 à 17:21
Bonjour,

voilà ce que j'ai trouvé (par hasard) : Détecter la résolution d'ecran
0
Utilisateur anonyme
18 avril 2009 à 18:26
Je te remercie pour le liens mais ce n'est pas ce que je rechercher je sais que le script fournie plus haut marche. la seul chose que je ne voit pas comment faire c'est récupérer la variable hauteur ou largeur puis l'indiquer dans la formule de redimensionnement de l'image. Donc si quelqu'un pouvait me montrer dans un exemple comment récupérer et placer la variable celà m'aiderai vraiment beaucoup d'avance merci a ce qui me répondront.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 504
18 avril 2009 à 18:42
Ajoute ceci entre <head> et </head> :
<script type="text/javascript">
<!--
function size_screen() {
 document.getElementById('hauteur').value = screen.height;
 document.getElementById('largeur').value =  screen.width;
}
// -->
</script>


Remplace <body> par <body onload="size_screen();">

Ajoute id="hauteur" et id="largeur" aux inputs correspondants.

Voici un exemple complet :
<!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" lang="fr">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

    <title>Redimensionnement de l'image</title>
    
<script type="text/javascript">
<!--
function size_screen() {
 document.getElementById('hauteur').value = screen.height;
 document.getElementById('largeur').value =  screen.width;
}
// -->
</script>
</head>
<body onload="size_screen();">

<form method="post" action="">
    <fieldset>
        <p>
            Largeur : 
            <input type="text" name="largeur" id="largeur" />
        </p>
        
        <p>
            Hauteur :    
            <input type="text" name="hauteur" id="hauteur" />
        </p>
    </fieldset>
</form>
</body>
</html>
0
Utilisateur anonyme
18 avril 2009 à 20:56
Tous d'abord merci pour le temps que tu me consacre. Donc si j'applique ce que tu me propose et que je rajoute maintenant l'ID dans ma formule php, que je vous est donné au tous début,

ex :

Height= »< ?php echo(résolution initial * hauteur(correspond donc a ma variable)/résolution initial x) ;> »

cela devrait fonctionner?
Juste une autre info n'étant pas sur mon PC pour le moment je ne peut pas encore testé les différentes solutions proposé d'où cette question d'avance merci.
0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 504
18 avril 2009 à 21:48
N'importe quoi.
Faut pas mélanger Javascript et PHP : Les variables, en PHP, commencent par $ (ex : $mavariable).

La hauteur sera placée dans $_POST['hauteur'] et la largeur dans $_POST['largeur'] après l'envois du formulaire.

Attention à la sécurité !
0
Utilisateur anonyme
19 avril 2009 à 09:06
re bonjour,

Sachant que je ne suis pas encore vraiment calé dans ce domaine là il faudrait vraiment que tu m'éclaire. qu'es que tu entend par après l'envoi de formulaire quel formulaire? Pourrait tu m'expliquer un peut chaque ligne car je t'avoue que j'aimerais vraiment apprendre. Je te remerci vraiment de me consacré un peu de ton temps.
0
PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
19 avril 2009 à 09:49
Bonjour

En effet Javsacript et PHP sont 2 langages distincts chacun avec sa propre syntaxe même si par certains côtés ils se ressemblent.

Le point essentiel est que le code PHP est exécuté sur le serveur (donc sur la machine qui héberge le site accessible via le net) avant que tu reçoives la page alors que le code Javascript est exécuté localement sur ton ordinateur une fois que tu as reçu la page.

Ce qui déroute un peu au départ les débutants c'est que dans la page le code PHP et Javascript et HTML (puisque la page reste quand même une page web) est apparemment mélangé. En fait il n'en est rien heureusement.

Mais un ex sera plus parlant

Soit la page demo.php simplifiée à l'extrême telle que le programmeur l'a codé avec un éditeur : le bloc note convient parfaitement ;-)

<html>
	<head>
		<script>
			alert('Coucou');
		</script>
	</head>
	<body>
		<?php echo "Bonjour";?>
	</body>
</html>	



Maintenant sur ton navigateur du demande au serveur WEB de t'envoyer cette page en entrant l'adresse :
http://www.monsupersite.com/demo.php
Le serveur WEB reçoit ta requête cherche la page et la transmet au module PHP : tout ça se passe sur le serveur pour l'instant toi tu es toujours en train d'attendre la réponse devant ton écran en râlant "bon sang mais qu'est ce qu'il est lent ce site !" lol

Le module PHP reçoit donc la page et voici ce qu'il voit :


		<?php echo "Bonjour";?>


Oui une seule ligne ! Pour PHP tout le code qui n'est pas inclus entre les balises <?php et ?> est ignoré car considéré comme du commentaire !

PHP exécute donc le code : ici on lui demande d'insérer le mot "Bonjour" dans la page

Une fois que le module PHP a terminé son boulot ta page demo.php ressemble à :

<html>
	<head>
		<script>
			alert('Coucou');
		</script>
	</head>
	<body>
		Bonjour
	</body>
</html>	


Note que la page ne comporte plus aucun code PHP : PHP s'est contenté de faire du copier/coller remplacer là où on lui a dit de le faire et c'est tout.
Maintenant que ta page demo.php est devenu une banale page html le serveur web te l'envoie : c'est pas trop top !

Donc ton navigateur la reçoit la charge et exécute le code Javascript (le code entre les balises <script> et </script>)
Avant même que ta page s'affiche tu as une petite fenêtre qui apparaît où s'affiche "Coucou" et qui te demande de répondre par OK
Ensuite ta page s'affiche : elle n'affiche que "Bonjour"

Et voilà
0
Utilisateur anonyme
19 avril 2009 à 12:18
Merci a toi pour ce rapide tuto pour les base javascript et PHP.

Donc j'ai mon code qui va donc débuter comme cela dans ce code j'ai un background que je veut redimensionner avec ma formule en php.

<!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" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<title>test</title>

<script type="text/javascript">
<!--
function size_screen() {
document.getElementById('hauteur').value = screen.height;
document.getElementById('largeur').value = screen.width;
}
// -->
</script>
</head>
<body onload="size_screen();">

<form method="post" action="">
<fieldset>
<p>
Largeur :
<input type="text" name="largeur" id="largeur" />
</p>

<p>
Hauteur :
<input type="text" name="hauteur" id="hauteur" />
</p>
</fieldset>
</form>
background="image.jpg" Height= "< ?php echo(résolution initial * $_POST['hauteur'](correspond donc a ma variable)/résolution initial x) ;> » width= "< ?php echo(résolution initial * $_POST['largeur'](correspond donc a ma variable)/résolution initial x) ;> »
</body>
</html>

Es que celà suffira ou je n'est encore pas comprit? Désoler d'avance si je me suis planté mais bon un bleu reste un bleu tant qu'il n'as assimilé la technique ;)
0
PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
19 avril 2009 à 12:54
Non c'est pas possible d'écrire ça

background="image.jpg" Height= "< ?php echo(résolution initial * $_POST['hauteur'](correspond donc a ma variable)/résolution initial x) ;> » width= "< ?php echo(résolution initial * $_POST['largeur'](correspond donc a ma variable)/résolution initial x) ;> » 


Si c'est censé êter du code Javascript il faut les balises <script> ... </script> déjà
Ensuite j'aime pas trop mettre du code JS directement dans le corps de la page : perso je place tout dans le
<head> ... <head>

Enfin ce code est faux : il va générer des erreurs c'est certain

Voicu un code qui ne fait strictement rien mais qui au moins est juste
Note qu'en PHP et JS les accents sont interdits dans les noms de variables !
En PHP toutes les variables doivent commencer par le caractère $
Dans le echo() de PHP tu n'as pas le droit de faire référence à des variables JS car pour PHP ni le code JS ni le code HTML n'existe : c'est vu comme du commentaire. Donc faire référence à une variable JS n'a pas de sens d'ailleurs ça plante ...

<script type="text/javascript">
var background = "image.jpg";
var Height = "<?php echo($resolution initial * $_POST['hauteur'];?>"; // correspond donc a ma variable)/résolution initial x
var width = "<?php echo($resolution initial * $_POST['largeur'];?>"; //correspond donc a ma variable/résolution initial x)
</script>


0
Utilisateur anonyme
19 avril 2009 à 15:29
justement non ce n'est pas un code en js c'est du php que je mets le php effectue un calcule de proportionnalité ce qui me permet d'avoir les images redimensionner dans sans déformation. Le seul soucie que j'ai c'est qu'il me faut réussir a récupérer la variable php qui correspond donc a la hauteur et a la largeur de l'écran du visiteur de telle façon via le js vu que d'après ce que j'ai lu ce n'est pas possible en php. est une fois les différentes variable trouvé que le php puisse récupérer le nombre trouver et faire son calcul de proportionnalité.

EX :

Height= "< ?php echo(100* 1024(correspond donc a ma variable)/800) ;> »

J'ai dejà testé ce code est il fonctionne parfaitement si on lui donne une valeur. le but donc du js et donc de me donner la valeur du visiteur et la placer dans l'endroit correspondant de mon code php.
J'espère avoir était assez précis.
Merci a tous ce qui m'ont deja répondu et merci a ce qui vont le faire.
0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 504
19 avril 2009 à 15:30
Après envois du formulaire, la hauteur est dans $_POST['hauteur'] et la largeur est dans $_POST['largeur'] (en PHP) !

JS ne placera pas la valeur dans le code PHP mais tu peux faire l'inverse : Placer quelque chose dans le code JS avec PHP.

Petit rappel : Le PHP ne s'excecute que sur le serveur et le Javascript sur l'ordinateur du client donc une fois que la page est envoyée par le serveur, tu ne peux plus ajouter de PHP avec Javascript (qui le fera une fois la page chargée).

Mais si tu redimmensionne l'image avec Javascript pourquoi ajouter PHP à l'histoire ?
0
Utilisateur anonyme
19 avril 2009 à 15:48
Mais si tu redimmensionne l'image avec Javascript pourquoi ajouter PHP à l'histoire ?

Ben si c'est faisable moi je ne dit pas non le but du jeu étant de faire en sorte que mon background soit toujours en pleine écran. donc si tu connait une possibilité avec du JS je vais pas dire non.
0
PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
19 avril 2009 à 16:06
Hum déjà faudrait savoir ce que tu entends par background ...

Pour moi une image en background c'est l'image de fond d'un site (mise en place via le CSS avec la propriété background) et celle-ci n'est absolument pas redimensionnable.

0
Utilisateur anonyme
19 avril 2009 à 16:27
J'ai construit ce site avec photoshop donc exclusivement des images.Si tu me dit que le background n'est pas redimensionnable serait t'il possible dans une balise DIV d'y intégrer une image qu'il elle sera redimensionner et qui devra donc prendre tous le temps la totalité de l'écran.
0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 504
19 avril 2009 à 18:18
Ben c'est malin ça ...

Apprend à créer un vrai site : Le Site du Zér0
0
Utilisateur anonyme
23 avril 2009 à 21:56
Bon mon problème a quasiment régler me reste juste à trouver une solution en ce qui concerne les images ce trouvant dans un tableau ou un moyen d'écrire dans un cadre precis du texte le tous au dessus de l'image. je sais pas si je suis bien précis. en détail j'ai une image soit je la découpe en plusieurs partie que j'intègre dans un tableau de là ce pose le problème de redimension car mon code fonctionne extrêmement bien dans le body mais si je met l'image dans un tableau et bien la le code ne fonctionne pas, voici le code

<head>
<script type="text/javascript">
<!-- debut
function resolution() {
document.location="<?php echo $_SERVER['PHP_SELF']; ?>?width="+screen.width+"&height="+screen.height;
}
// fin -->
</script>
</head>
<body>
<?
if( !isset($_GET['width']) and !isset($_GET['height']) ){
echo '<body onload="resolution();" ';
}
else{
echo '<body ';
}
echo leftmargin='0' topmargin='0' marginwidth='0' marginheight='0'?>
<img src="test.jpg" width="<?= (1280*$width/1280)?>" height="<?= (1024*$height/1024)?>" />
</body>


Sa c'est le code qui fonctionne bien si je mets cette même image dans un tableau la redimension ne fonctionne plus. Si quelqu'un a une solution je suis preneur.

Ma deuxième solution serai d'intégrer l'image dans le body pour que celle-ci puisse être redimensionné mais problème comment réussir a écrire sur l'image en gros avoir une zone qui ce réduise ou augmente selon la résolution et qui par conséquent reste placer au même endroit vu que la redimension sera la même.

Voilà alors si quelqu'un à une autre solution ou a une réponse a mes problèmes je lui en serais reconnaissant.
Merci à vous et bonne soirée.
0