IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

[JQuery] Arbre à plusieurs niveaux


Sujet :

jQuery

  1. #1
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2002
    Messages : 899
    Par défaut [JQuery] Arbre à plusieurs niveaux
    Je veux construire un arbre dynamiquement. (pour ceux que ça aide, ça représente des sociétés, et pour chacune leurs filiales, sur plusieurs niveaux)
    J'ai utilisé plusieurs méthodes qui bloquent toutes au même endroit, et je ne vois pas comment passer le problème.
    1 - en premier lieu je charge une liste d'items, de niveau 1 (c'est coldfusion qui génère). ça ça marche bien
    2 - quand je clique sur un petit "plus" à coté d'une feuille, je déplie. je vais chercher en ajax un fichier coldfusion "fils.cfm" qui me trouve les fils de la branche en cours. ça aussi ça marche.
    3 - à ce moment, j'ai donc des branches de premier niveau, et des branches de second niveau. Les seconds niveau ont été chargées par ajax.
    4 - quand je veux utiliser le petit "plus", au niveau deux, ça ne fonctionne pas. En fait il n'y a pas d'appel à ma fonction ajax

    J'ai pour l'instant tenté avec plusieurs méthodes:
    - getXhr() + innerHTML => ça affiche bien ce que je veux, mais le javascript ne fonctionne pas.
    - jquery ($.ajax ou $.post) => ça affiche bien ce que je veux, mais le javascript ne fonctionne pas.
    - getXhr() + createTextNode + appendChild => ça récupère les données, mais ça ne mets pas en forme

    Je précise que mes données sont renvoyées formatées par mon fichier fils.cfm (un div, contenant d'autres div, avec les icones, évènements...).

    Les différents topics que j'ai pu lire ici orientent vers le createElement. Mais je ne vois pas comment je peux l'utiliser dans mon cas.
    Quand je l'utilise, je créé un div, puis je place mon texte reçu du getXhr() dedans, mais le html n'est alors pas interpreté.

    Voici le js concernant le mode getXhr() + createTextNode + appendChild
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    	function addChild(idSoc){
    		var xhr = getXhr()
    		xhr.onreadystatechange = function(){
    			if(xhr.readyState == 4 && xhr.status == 200){
    				var montexte = document.createTextNode(xhr.responseText);
    				montexte.innerHTML = xhr.responseText;
    				document.getElementById("lev2_"+idSoc).appendChild(montexte);
    			}
    		}
    		xhr.open("GET","fils.cfm?idSoc="+idSoc,true);
    		xhr.send(null);
    	}
    		function getXhr(){
    			var xhr = null;
    			if(window.XMLHttpRequest) // Firefox et autres
    				xhr = new XMLHttpRequest();
    			else if(window.ActiveXObject){ // Internet Explorer
    			   try {
    						xhr = new ActiveXObject("Msxml2.XMLHTTP");
    					} catch (e) {
    						xhr = new ActiveXObject("Microsoft.XMLHTTP");
    					}
    			}
    			else { // XMLHttpRequest non support par le navigateur
    			   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
    			   xhr = false;
    			}
    			return xhr;
    		}

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2002
    Messages : 899
    Par défaut Trouvé!
    Bon, et bien ça marche, au moins sur opéra et firefox mais pas sur IE6).
    Il fallait juste compléter mon script par un lien qui devrait à mon avis être en entête de la section ajax, et pas seulement dans la FAQ javascript.
    http://www.developpez.net/forums/sho...d.php?t=253088
    (j'ai utilisé la version de ov700 pour le setInnerHTML).

    Par contre une chose me surprend beaucoup: lorsque j'utilisais les fonctions de jquery pour modifier ma page, les objets n'étaient pas ajoutés au dom.
    D'après vous, est-ce que je m'y prenais mal ou bien est-ce que ce n'est pas géré par le framework?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Création JPopupMenu avec plusieurs niveaux
    Par gpcanto dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 01/06/2006, 08h50
  2. [Hibernate] Héritage sur plusieurs niveaux
    Par srvremi dans le forum Hibernate
    Réponses: 2
    Dernier message: 31/05/2006, 18h39
  3. Apache 1.3 VirtualDocumentRoot à plusieurs niveaux
    Par marcha dans le forum Apache
    Réponses: 1
    Dernier message: 25/05/2006, 20h30
  4. Plusieurs niveaux de colonnes dans TDBGrid
    Par TicTacToe dans le forum Composants VCL
    Réponses: 4
    Dernier message: 31/01/2006, 10h44
  5. Création de plusieurs niveaux de sous formulaires
    Par Farbin dans le forum Access
    Réponses: 2
    Dernier message: 25/10/2005, 20h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo