Je suis en train de générer un treeview pour Jquery avec ceci : http://www.dynamicdrive.com/dynamicinde ... /index.htm
Ca marche très bien et je peux afficher un arbre correctement avec ma fonction. Le principe de la fonction est que je stock mon arbre dans une variable de sessions que j'affiche ensuite.
Le problème c'est qu'il faut qu'il affiche uniquement les "+" lorsqu'il y a un enfant à l'intérieur. Car actuellement il affiche les "+" partout et bien sûr c'est inutile, il y a donc un problème je dois mettre les balises "<ul> </u>" à des emplacements préçis et uniquement dans certains cas pour que ça puisse marcher.
Pensez-vous pouvoir m'aider ?
Appel de l'arbre
$tree = new Tree('metiers');
$t = $tree->tree_view('metiers',0);
echo $t;
Classe
static function tree_view($nomTree,$id=0)
{
// Sélection des métiers
$req = mysql_query("SELECT * FROM tb_metiers WHERE id_parent=".$id." AND id_langue='".$_SESSION['id_langue']."'");
while($res=mysql_fetch_assoc($req))
{
$_SESSION[$nomTree].='<li style="padding-left:15px;list-style-type:none; background:none;">';
$_SESSION[$nomTree].= '<input type="checkbox" name="tree[]" value="'.$res['id'].'">';
$_SESSION[$nomTree].= ' '.$res['metier'];
tree::tree_view($nomTree,$res['id']);
$_SESSION[$nomTree].= '</li>'."\n";
}
$_SESSION[$nomTree].= '</ul>'."\n";
return $_SESSION[$nomTree];
}
Alors je me suis lancé dans un truc du genre mais en vain ça ne passe pas.
static function tree_view($nomTree,$id=0)
{
// Sélection des métiers
$req = mysql_query("SELECT * FROM tb_metiers WHERE id_parent=".$id." AND id_langue='".$_SESSION['id_langue']."'");
// Vérifie s'il y a des enfants
$sql = mysql_query("SELECT count(id) as Nbre FROM tb_metiers WHERE id_parent=".$id." AND id_langue='".$_SESSION['id_langue']."'");
while($row = mysql_fetch_array($sql)){
if($row['Nbre']>0){
$_SESSION[$nomTree].= 'Contient'.$row['Nbre'].'<ul>';
}
}
while($res=mysql_fetch_assoc($req))
{
$_SESSION[$nomTree].='<li style="padding-left:15px;list-style-type:none; background:none;">';
$_SESSION[$nomTree].= '<input type="checkbox" name="tree[]" value="'.$res['id'].'">';
$_SESSION[$nomTree].= ' '.$res['metier'];
tree::tree_view($nomTree,$res['id']);
$_SESSION[$nomTree].= '</li>'."\n";
}
$_SESSION[$nomTree].= '</ul>'."\n";
return $_SESSION[$nomTree];
}