1 pi�ce(s) jointe(s)
Dynatree, JSON, MySQL et PHP
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 :
Code:
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" }
]
}
]
}]; |
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.
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 :
Code:
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> |
pour que mon fichier html ressemble � ca :
Code:
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> |
Lorsque je regarde le code source, tout s'affiche comme il faut (du moins il me semble) mais le dynatree ne s'affiche plus.
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