web-dev-qa-db-fra.com

Mise à jour de la fenêtre principale du composant en cliquant sur la barre latérale

Je développe un composant qui fonctionnera comme un explorateur pour Joomla, avec un arbre dans la barre latérale et une liste d'éléments dans la fenêtre principale de mon composant. Ce que je ne sais pas faire, c’est, en cliquant sur un nœud de l’arborescence, de mettre à jour la liste des éléments de la fenêtre principale avec les enfants de ce nœud, si possible, sans avoir à actualiser la page. Je pense que cela a quelque chose à voir avec Ajax et JQuery, mais je n'ai aucune idée de la façon de le mettre en œuvre.

Merci!

Éditer 1:

Je pense que je ne me suis pas très bien expliqué. Le comportement devrait ressembler à celui du composant com_media:

enter image description here

1
republicca

Finalement, j'ai pu trouver une solution à cela:

J'ai créé un événement onClick sur la barre latérale qui passe à une fonction javascript. À l'intérieur de cette fonction javascript, j'ai reçu l'id du nœud cliqué dans la barre latérale et, avec un appel jQuery ajax, je poste cet identifiant dans une fonction à l'intérieur du contrôleur. Dans cette fonction, je récupère les nœuds enfants de l'ID passé (de la base de données) et les analyse en json que la partie de l'appel ajax qui reçoit avec succès. Ici, et avec ce retour json, j'efface l'identifiant avec la table et je crée la table à nouveau avec la propriété innerHtml de la fonction getbyid.

C'était la seule façon pour moi de le faire. Si quelqu'un connaît un autre s'il vous plaît partager!

0
republicca

Vous pouvez utiliser la classe Collapse de Bootstrap) ou l'accordéon de jQuery UI .

Vous pouvez dessiner votre arborescence avec div et garder certains nœuds cachés.

Et faire un événement onClick pour afficher le contenu div

obs.: Vous pouvez le faire sans demande ajax si vous voulez que ce soit plus simple.

1
Guilherme