Page 1 sur 1

problème de communication variable PHP vers javascript

Posté : 03 juin 2005, 14:08
par mathieu_r
bonjour,

jai un problème avec la communication d'une variable php ds un script javascript.
ds une première partie, mon code php permet de recueillir les résultats d'une requête. ces résultats sont nommés result, i allant de 1 à n.
jaimerais utiliser ces résultats ds mon javascript ds une boucle "for".
mon script ressemble donc à ça:

Code : Tout sélectionner

<SCRIPT type="text/javascript"> var image="tree_layer.gif"; //nb_couches correspond au nombre de rsultats de ma requête. var nb_couches=<? echo $nb; ?>; USETEXTLINKS = 1 STARTALLOPEN = 0 ICONPATH = '' foldersTree = gFld("<b>Mapfile structure</b>", "demoFramesetRightFrame.html") //boucle for de mon javascript for (var $i=1; $i<=nb_couches; $i++) { <? echo $result_layer[$i]; ?> aux1 = insFld(foldersTree, gFld("<? echo $result[$i]; ?>";, "demoFramesetRightFrame.html")) aux1.iconSrc = ICONPATH + image aux1.iconSrcClosed = ICONPATH + "tree_layer.gif" } </SCRIPT>
le script ne fonctionne pas. je suppose que c à la ligne

Code : Tout sélectionner

aux1 = insFld(foldersTree, gFld("<? echo $result[$i]; ?>";, "demoFramesetRightFrame.html"))
il ne doit pas reconnaître le i...

si qqn pouvait m'aider, ça serait sympa!

Posté : 03 juin 2005, 15:54
par Cyrano
Attention à ne pas complètement mélanger les deux langages, les variables JavaScript ne sont pas préfixées par "$":
Remplace
for (var $i=1; $i<=nb_couches; $i++) 
par
for (var i=1; i<=nb_couches; i++) 
N'oublie pas que le PHP est exécuté coté serveur et que le client ne sait pas interpréter le PHP, donc JavaScript ne peut pas reconnaitre une variable PHP

ok

Posté : 03 juin 2005, 15:59
par mathieu_r
merci!
d'accord,

jai donc décidé d'inclure le javascript ds le PHP:

Code : Tout sélectionner

<? echo ' <SCRIPT type="text/javascript"> var image="tree_layer.gif"; var nom_couche="Layer 1"; USETEXTLINKS = 1 STARTALLOPEN = 0 ICONPATH = \'\' foldersTree = gFld("<b>Mapfile structure</b>", "demoFramesetRightFrame.html")'; for ($i=1; $i<3; $i++) { echo "aux1 = insFld(foldersTree, gFld(\"".$result_layer[$i]."\";, \"demoFramesetRightFrame.html\");)"; echo " aux1.iconSrc = ICONPATH + \"tree_layer.gif\""; echo "aux1.iconSrcClosed = ICONPATH + \"tree_layer.gif\""; } echo "</SCRIPT>"; ?>
mais ça ne marche toujours pas...

que faire?