Pb avec DHTMLXTree

Pour toutes les discussions javascript, jQuery et autres frameworks
Répondre
Laurent 457
Messages : 1
Enregistré le : 28 nov. 2017, 13:41

Pb avec DHTMLXTree

Message par Laurent 457 » 28 nov. 2017, 14:39

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.

Avatar du membre
Frosty
Messages : 123
Enregistré le : 20 juil. 2017, 13:23
Localisation : Grenoble

Re: Pb avec DHTMLXTree

Message par Frosty » 30 nov. 2017, 09:33

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];});

Répondre