Bonjour � tous,
je suis stagiaire dans une boite et on m'a demand� de bosser sur une page web permettant de s�lectionner des noeuds de la hi�rarchie du service stock�e dans une BDD MySQL pour pouvoir envoyer un message aux s�lectionn�s (cf capture 1).
Je me suis tourn� vers Dynatree qui permet de cr�er des arbres modifiables � souhait.
Pour "peupler" ces arbres, on peut d�clarer une variable JS qui re�oit une cha�ne format�e JSON :
Sauf que moi, ma structure est stock�e dans une base MySQL. J'ai donc cod� une page php qui se connecte � la bdd et fait les diff�rentes op�rations pour r�cup�rer une cha�ne contenant exactement le m�me format de cha�ne que ci-dessus.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12 var treeData = [ {title: "item1 with key and tooltip", tooltip: "Look, a tool tip!" }, {title: "Folder", isFolder: true, key: "id3", children: [ {title: "Sub-item 3.1", children: [ {title: "Sub-item 3.1.1", key: "id3.1.1" }, {title: "Sub-item 3.1.2", key: "id3.1.2" } ] } ] }];
Jusque l�, pas de pb.
L� ou je gal�re, c'est sur la fa�on de passer cette cha�ne de caract�res � ma variable JS "treeData".
Dans la doc de Dynatree, il est dit que l'on peut r�cup�rer le contenu d'un flux/fichier JSON envoy� par un service web, mais je n'ai aucune id�e de comment cela peut fonctionner.
J'ai essay� de combiner php, html et JS :
pour que mon fichier html ressemble � ca :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8 <script type="text/javascript"> include("MySQLtoJSON.php"); // ce fichier php contient la fonction getJSON() qui retourne une chaîne de caractères formatée à la sauce JSON $arbre = getJSON(); // Je récupère le contenu de cette chaîne dans $arbre echo ("var treeData = ". $arbre); [...] </script>
Lorsque je regarde le code source, tout s'affiche comme il faut (du moins il me semble) mais le dynatree ne s'affiche plus.
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <script type="text/javascript"> var treeData = [ {title: "item1 with key and tooltip", tooltip: "Look, a tool tip!" }, {title: "Folder", isFolder: true, key: "id3", children: [ {title: "Sub-item 3.1", children: [ {title: "Sub-item 3.1.1", key: "id3.1.1" }, {title: "Sub-item 3.1.2", key: "id3.1.2" } ] } ] }]; </script>
Je suis bien conscient que mon code/raisonnement est un peu tir� par les cheveux mais je vois pas trop comment mieux m'y prendre d'une autre fa�on.
Merci pour tout coup de main.
Hubert
Partager