Page 1 sur 1

variable PHP prevenant du monde exterieur

Posté : 10 août 2006, 17:43
par kanafloric
Salut

J'ai une variable "le_terme" créée par javascript et stockée dans une propriété de l'objet document.

Je voudrais recuperer cette propriété et l'utiliser dans du code PHP. On m'a conseillé ceci :
$toto='<script language="JavaScript">document.write(le_terme())</script>';?>
le_terme() etant simplement une fonction qui renvoie ladite valeur.

En apparence, ca marche : echo $toto me renvoie à l'écran la bonne chaine de caractère...Mais en réalité, ca ne marche pas : utilisée dans une requete MySQL, ca foire.

Quelqu'un sait pourquoi ? Apparement, on ne peut pas utiliser document.write comme si c'etait une fonction renvoyant une chaine de caractère...

Posté : 10 août 2006, 18:16
par albat
On va dire que c'est un vieux classique...

Le PHP est interprêté côté serveur, le Javascript est exécuté côté client.
Donc le code PHP est exécuté AVANT le code Javascript.
Tout simplement.

Posté : 10 août 2006, 18:44
par kanafloric
Oui.

Quand j'ai écrit ce truc, je me suis dit que ca ne pouvait pas marcher. Le problème, c'est qu'il y a quelque chose dans la variable $toto.

Comment diable est-ce possible ?
<?php 
$toto='<script language="JavaScript">document.write(le_terme())</script>';
echo $toto;
?>
La première ligne affecte à la variable $toto ...quelque chose qui n'est pas encore connu.
Pourtant, arrivé au client, la deuxième ligne fonctionne ! Il y a quelque chose que je ne saisis pas.

Posté : 10 août 2006, 19:04
par Truc
il y a quelque chose dans la variable $toto
la variable est initialisée avec :

"<script language="JavaScript">document.write(le_terme())</script>"

le echo affiche donc cette ligne dans le document HTML généré ensuite coté client le script est exéuté normalement.

Ces deux cas sont identiques :
//cas 1
<?php 
$toto='<script language="JavaScript">document.write(le_terme())</script>';
echo $toto;
?>
//cas 2
<script language="JavaScript">document.write(le_terme())</script>
Dans le cas 1 tu passes par un traitement PHP pour l'affichage c'est tout.

Posté : 10 août 2006, 19:17
par kanafloric
ah ben oui....

Je crois que j'ai besoin de repos.

Merci.

Posté : 10 août 2006, 19:22
par Truc
Si ces quelques explications te conviennent n'oublis pas le [Résolu] :)