Page 1 sur 1

Pb avec DHTMLXTree

Posté : 28 nov. 2017, 14:39
par Laurent 457
Bonjour,
j'ai créé une arborescence à l'aide DHTMLXTree basé sur une base MySQL.
L'arborescence fonctionne.
A présent je souhaiterais, lorsque je clique sur les différents item, pointer sur les fichiers (pdf, word...) dont les noms sont stockés dans la base sous le champ "fichier".

Voici ma requete (connector.php) :

Code : Tout sélectionner

$treeConn->render_sql("SELECT id_docs,titre_docs,ref_id,fichier FROM docs ORDER BY ref_id ASC", "id_docs", "titre_docs,fichier", "", "ref_id") ; 
J'ai testé ce code pour afficher les fichiers (tree.php) :

Code : Tout sélectionner

tree.attachEvent("onClick", function(id) {document.location.href="../works/docs_upld/"+fichier;});
...mais sans succès, rien ne se passe.

Par contre si je teste avec ce code :

Code : Tout sélectionner

tree.attachEvent("onClick", function(id) {document.location.href="../works/docs_upld/"+id;});
le lien fonctionne et récupère bien la variable id.

C'est donc la variable "fichier" que je n'arrive pas à récupérer.

Auriez-vous une idée pour que je puisse récupérer cette variable ?
Par avance merci.

Re: Pb avec DHTMLXTree

Posté : 30 nov. 2017, 09:33
par Frosty
Bonjour,

En effet je vois déjà un souci important avec :

Code : Tout sélectionner

tree.attachEvent("onClick", function(id) {document.location.href="../works/docs_upld/"+fichier;});
D'où vient la variable JS "fichier" ? Est-elle définie quelque part ? En tout cas, clairement, le contenu de cette variable "fichier" ne dépendra pas de de l'élément cliqué (on ne récupère en effet que l'id)

Une option peut être de générer, à partir de PHP (tree.php ?), une variable JS globale nommée par ex. "fichiersParId" qui serait de la forme :

Code : Tout sélectionner

var fichiersParId = {
  <id1>: <nomFichier1>,
  <id2>: <nomFichier2>,
  etc.
};
Ainsi il serait possible de faire (en très simple et crade, dans l'idéal il faudrait vérifier que l'id existe bien dans l'objet "fichiersParId" avant de faire "fichiersParId[id]") :

Code : Tout sélectionner

tree.attachEvent("onClick", function(id) {document.location.href="../works/docs_upld/"+fichiersParId[id];});