Transfert d'info entre php et javascript [Résolu]

Messages postés
1108
Date d'inscription
mercredi 15 juin 2011
Dernière intervention
10 juillet 2018
- - Dernière réponse : fregolo52
Messages postés
1108
Date d'inscription
mercredi 15 juin 2011
Dernière intervention
10 juillet 2018
- 29 sept. 2008 à 10:07
Bonjour,

Je ne suis pas du tout un spécialiste du dév web, mais je dois apporter des évolutions à un site intranet.

Mon but est d'afficher une treeview avec des checkbox à chaque noeud.
J'ai trouvé un code sur le Net en javascript (blueshoes.org).
Les infos qui vont permettre de créer l'arbre sont dans une BDD MySQL.

Je pensais donc créer un tableau en php et le transférer dans le code javascript.
Mais j'ai l'impression d'un tableau php n'est pas un tableau javascript.
J'ai ce code de test :
<?php
$ab = array();
$ab[0] = array();
$ab[0]['caption']          = "1er noeud";
echo "<script language="javascript">alert($ab[0]['caption'] );</script>";
?>
L'alert me retourne undefine.

Est-il possible de transférer des tableaux ? Sachant que le code php et js sont dans la même page.
Est-il plus simple (plus propre) de passer par un fichier temporaire xml (je n'ai pas encore regardé ajax).

Merci
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
20
Date d'inscription
jeudi 18 septembre 2003
Dernière intervention
26 septembre 2008
3
Merci
Bonjour,

Effectivement si tu veux uniquement que transmettre une valeur à javascript, il te suffit de la concaténer dans ta chaine envoyée à ton client, comme la expliqué extraman1.

Cependant, si tu désires exploiter comme tu veux ton tableau php en javascript, le plus simple reste pour toi d'utiliser le format de notation objet de javascript (=JSON).
Pour ce faire, rien de plus simple, modifie ton fichier comme ceci :

echo '<script type="text/javascript">var monTableauJS = eval("'.addslashes(json_encode($ab)).'");
alert(monTableauJS[0]['caption']);
</script>';

Petite explication :

Depuis php5.2.0, la fonction json_encode est en native dans php. Elle permet de convertir un tableau php en une chaine de caractère que javascript comprend et interprete via la fonction "eval". Le résultat retourné par cette fonction peut alors être utilisé comme s'il s'agissait du tableau initial php (bien sur, il ne s'agit que d'une copie en javascript).
Cette notation JSON est souvent utilisé en Ajax, plutot que d'utiliser l'xml (en réponse à ta phrase : Est-il plus simple (plus propre) de passer par un fichier temporaire xml (je n'ai pas encore regardé ajax).).

En espérant avoir été clair ^^.

Roland Dufour,
http://www.multiprog.net
Visitez mon portfolio : >> http://portfolio.multiprog.net <<

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 87 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_TASIOT
Messages postés
103
Date d'inscription
lundi 8 septembre 2003
Dernière intervention
26 décembre 2009
1
3
Merci
Salut,

Celui-là c'est bon j'ai testé :

echo "<script language="javascript">alert(" ".$ab[0]['caption']." ");</script>";

A++ extraman1

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 87 internautes nous ont dit merci ce mois-ci

Commenter la réponse de extraman1
Messages postés
103
Date d'inscription
lundi 8 septembre 2003
Dernière intervention
26 décembre 2009
1
0
Merci
Salut,

Et si tu tapes ça :

echo '<script language="javascript">alert(" '.$ab[0]['caption'].' ");</script>";

A++ extraman1
Commenter la réponse de extraman1
Messages postés
1108
Date d'inscription
mercredi 15 juin 2011
Dernière intervention
10 juillet 2018
5
0
Merci
Bonjour,

Merci pour ces infos. J'ai encore un peu de mal avec la syntaxe de ce langage.

L'exemple d'extraman1 m'afficher "Array['caption']" et pas "1er noeud".

Je vais investiguer vers json.

merci
Commenter la réponse de fregolo52
Messages postés
20
Date d'inscription
jeudi 18 septembre 2003
Dernière intervention
26 septembre 2008
0
Merci
Pour info extraman1, ta seule erreur dans le précédent code était que tu avais oublié de fermer ta simple quote (=') juste après </script>.
Après mon code lui permet de gérer tout son tableau en javascript. Tout dépend après de l'utilisation exacte qu'il désire en faire. :p

Roland Dufour,
http://www.multiprog.net
Visitez mon portfolio : >> http://portfolio.multiprog.net
Commenter la réponse de cs_TASIOT
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Dernière intervention
29 décembre 2012
3
0
Merci
tu peux passer simplement par un json_encode !

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

 Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
Commenter la réponse de Teclis01
Messages postés
1108
Date d'inscription
mercredi 15 juin 2011
Dernière intervention
10 juillet 2018
5
0
Merci
Merci pour votre aide. Ca m'a aider aussi a mieux appréhender la syntaxe. :)


 
Commenter la réponse de fregolo52

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.