Messages: 14

Enregistré le: 4 Juil 2003

Message le Lun Juil 28, 2003 11:00

'lut a tous,

j'aimerai savoir comment il est possible de recuperer dans du code php la valeur d'une variable déclarée ds un javascript.

Du php vers le javascript, ca j sais faire
mais l'operation inverse reste pour moi une enigme

Merci de m'aider !! :)
Bye !!!
Haut
9 Réponses
Messages: 1923

Enregistré le: 6 Juin 2003

Message le Lun Juil 28, 2003 11:04

Salut

Etant donné que le php est interprété par le serveur, tu dois repasser par celui-ci d'une façon ou d'une autre. Plusieurs solutions : un formulaire, un lien, l'ouverture d'un popup, l'utilisation d'une frame cachée contenant un fichier Php que tu rechargerais en lui passant la variable, etc. Certains utilisent même du flash pour ce genre de trucs ;)
Pour ma part je préfère le formulaire ou le lien.

Fred
Haut
Messages: 88

Enregistré le: 26 Jan 2003

Message le Dim Aoû 17, 2003 21:40

ou bien une phase du genre (dans le cas ou l'on a besoind e la résolution du client dans un script PHP, pour par exemple, faire des stats par résolution)

<SCRIPT>
<!--
var w = screen.width;
var h = screen.height;

top.document.location = "mapage.php?w="+w+"&h="+h;
//-->
</SCRIPT>

------------------------
dans ton mapage.php

echo $_GET['w'].' << largeur<BR>'.$_GET['h'].' << hauteur';


A+
youplaboum!
sepang
Haut
Messages: 1

Enregistré le: 20 Nov 2003

Message le Jeu Nov 20, 2003 12:33

salut il est peut être un peu tard pour te donne une info sur ta kestion, mais je viens de m'y mettre sur php ^^, et moi aussi je suis confronte a se petit pb.
g trouve comme astuce pour passe directement une variable jscript dans du ph:


<script>
var toto = 1
document.write(toto);


</script>
<?
$Titre = "<script>document.write(toto);</script>";
?>
<?
echo $Titre;
?>

voilou, mais pour c n'est ke debut d'une grande prise de tete sur ce ki me reste a faire ^^
A++
Haut
Messages: 1063

Enregistré le: 6 Sep 2003

Message le Jeu Nov 20, 2003 15:55

Ta solution est étonnante!
Je n'avais jamais essayé cela.

Par contre, es-tu sûr que cela marche?
Je veux dire: le php est toujours exécuté avant le javascript, puisque qu'il est est exécuté sur le serveur et le JS sur la machine du visiteur.
Donc, c'est étonnant que cela marche...
Haut
Messages: 1923

Enregistré le: 6 Juin 2003

Message le Jeu Nov 20, 2003 16:03

Ca marchera mais j'ai du mal à voir l'intérêt...

Pourquoi ça marche -> lorsque tu fais le echo $titre, ça affiche dans la page le code javascript document.write(toto), donc ça écrit le contenu de toto dans le document. Mais cela implique que toto soit déjà connu, donc autant l'afficher directement.

Tu aurais un exemple concret de ce que ce code t'a permis de faire et qui n'aurait pas été possible autrement ?

Fred
Haut
Messages: 1

Enregistré le: 13 Mar 2012

Message le Mar Mar 13, 2012 2:45

Alors, je suis tombé sur ce topic par hazard et j'ai trouvé des réponses tellement erronées que certains feraient bien de
s'abstenir.
Exemple : La réponse de Sun_one est tellement absurde qu'on se demande s'il sait ce qu'est passer une variable.
Il faudrait lui demander comment il manipule la variable toto dans son script php et il verrait très vite la faiblesse de son code.
Sérieusement, passer une variable se fait en attribuant la valeur de cette variable à une nouvelle variable dans php et pas en faisant un string du nom de la variable. Sun_one devrait essayer d'incrémenter, ou de modifier la nature de la variable pour bien comprendre.

Comme l'ont dit d'autres, il faut utiliser des techniques pour passer une variable via un lien, un formulaire, ...
Mais la technique que je préfère, est d'utiliser une iframe et ma page php principale. L'iframe recevra les variables Javascript qu'elle pourra traiter dans un script php. Pour les afficher sur la page principale sans recharger la page, chaque événement Javascript faisant appel à l'iframe modifiera le contenu d'un <DIV> en modifiant le .innerhtml. C'est d'ailleurs ce que fait AJAX d'une certaine manière :p
Haut
Messages: 1

Enregistré le: 25 Mar 2013

Message le Lun Mar 25, 2013 21:38

Il suffit de rejouer la page avec la variable passée en paramètre que l'on récupère dans une variable de session.
Exemple pour récupérer les dimensions de l'écran en PHP :
<?php
session_start();
if (isset($_GET['width'])) $_SESSION['screenW']= $_GET['width'];
if (isset($_GET['height'])) $_SESSION['screenH']= $_GET['height'];
?>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>taille ecran</title>
<?php
if (!isset($_SESSION['screenW'])) { ?>

<SCRIPT LANGUAGE="JavaScript" type="text/javascript">
document.location="<?php echo $_SERVER["PHP_SELF"];?>?width="+screen.width+"&height="+screen.height;
</SCRIPT>
<?php } ?>
</head>
<body>
<div align="center">
<h4> dimensions de l'&eacute;cran en pixels :</h4>
<b> <?php print 'largeur= '.$_SESSION['screenW'].' hauteur= '.$_SESSION['screenH']; ?> </b>
</div>
</body>
</html>
Haut
Messages: 3

Enregistré le: 28 Jan 2017

Message le Mer Mai 03, 2017 14:27

J'ai fini par trouver une autre solution simple à ce problème : utiliser des cookies.

- Javascript enregistre la variable à récupérer dans un cookie valable jusqu'à la fermeture du navigateur.
- PHP récupère la valeur inscrite dans ce cookie.

Des exemples de code pour récupérer la taille de la fenètre se trouvent dans cette discussion :
http://forum.webrankinfo.com/taille-fenetre-php-t89689.html#p1563552
Haut