le composant Flex tree attend en dataProvider par exemple un fichier XML.
exemple de code pour le XML:
<root>
<node label="leisure">
<node label="sport" >
<node label="3" id="football" />
<node label="4" id="tennis" />
</node>
<node label="music" >
<node label="5" id="jazz" />
<node label="6" id="rock" />
</node>
</node>
</root>
et le code Flex correspondant pour afficher un tree hiérarchisé:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:XML source="test.xml" id="xml1" />
<mx:Tree x="108" labelField="@label" y="147" dataProvider="{xml1.node}" width="265" height="264"></mx:Tree>
</mx:Application>
La “seule difficluté” est de créer le XML correspondant au XML à partir d’une base de donnée mysql.
à partir de 3 tables MYQL : caregories, subcategories, subsubcategories:
Il s’agit en fait de parcourir un array associatif crée par le php dont voici le code:
<?
include("services/Connections/sql.php");
$sql="SELECT category.description, subcategory.description as subcategoryDescription, subsubcategory.description as subsubcategoryDescription, subsubcategory.id
FROM subsubcategory ,subcategory,category
WHERE subcategory.categoryid = category.id AND subsubcategory.subcategoryid=subcategory.id ";
$result = mysql_query($sql);
$xmlarr = array();
$xmlresp = "<root>\n";
while ($row = mysql_fetch_assoc($result)) {
$xmlarr[$row['description']][$row['subcategoryDescription']][$row['subsubcategoryDescription']] = $row['id'];
}
foreach ($xmlarr as $key1=>$val1) {
$xmlresp .= " <node label=\"$key1\">\n";
foreach ($val1 as $key2=>$val2) {
$xmlresp .= " <node label=\"$key2\" >\n";
foreach ($val2 as $key3=>$val3) {
$xmlresp .= " <node label=\"{$key3}\" id=\"{$val3}\" />\n";
}
$xmlresp .= " </node>\n";
}
$xmlresp .= " </node>\n";
}
$xmlresp .= "</root>";
echo $xmlresp;
?>