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

JavaScript Discussion :

Tableau dynamique (Ajax)


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Par défaut Tableau dynamique (Ajax)
    Bonjour,

    J'ai besoin de faire un apel Ajax pour reprendre des données d'une bdd. Sans problème, je fait cela. Quand mon xhr change d'état, j'appel la fonction suivante (xhr est donc un élément XMLHttpRequest()
    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
    function arrayFromXML(xhr)
    {
    	var tab = new Array();
    	if (xhr.readyState==4)
    	{
    		if (xhr.status==200)
    		{
    			var array = xhr.responseXML.firstChild.childNodes;
    			for(var i = array.length - 1 ; i >=0; i--)
    			{
              		tab[array[i].getAttribute("type")]=array[i].getAttribute["value"];
              	}
             }
        }
        return tab;
    }
    mais voila, tabe est vide. j'avoue que c'est obscure pour moi. est ce que qqun serait pourquoui tab est vide ?

    PS : mon apel XHR renvoi un XML de type :
    <racine>
    <element type="toto" value="prout" />
    </racine>

  2. #2
    Membre confirmé Avatar de Capt. Flame
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2005
    Messages : 222
    Par défaut
    Si tu fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    alert(xhr.responseXML.firstChild.childNodes.length)
    qu'est-ce que ça te donne comme résultat?

  3. #3
    Membre éprouvé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Par défaut
    Citation Envoyé par Capt. Flame Voir le message
    Si tu fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    alert(xhr.responseXML.firstChild.childNodes.length)
    qu'est-ce que ça te donne comme résultat?
    ça me donne trois, normale mon XML à trois noeud (après la racine)
    c'est quand même bizarre, j'ai simplifié ma fonction au maximum
    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
    function arrayFromXML(xhr)
    {
    	var tab = new Array();
    	if (xhr.readyState==4)
    	{
    		if (xhr.status==200)
    		{
    			var array = xhr.responseXML.firstChild.childNodes;
    			for(var i = array.length - 1 ; i >=0; i--)
    			{
              		var key = array[i].getAttribute("type");
              		var value = array[i].getAttribute("value");
              		tab[key]=value;
              	}
             }
        }
        return tab;
    }
    mais l'objet retoruné est toujours un tableau de longueur 0

  4. #4
    Membre Expert Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Par défaut
    Et si tu fais alert(array[0])?

    Parce que xhr.responseXML.firstChild.childNodes retourne un NodeList, et non un tableau, donc je suis pas sur que tu puisse créer un tableau directement de cette facon.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Par défaut
    Citation Envoyé par DoubleU Voir le message
    Et si tu fais alert(array[0])?
    ave firefox ça m'affiche je trouve cela normal
    mais je rempli mon tableau à partir des attribut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     array[i].getAttribute("value");
    Parce que xhr.responseXML.firstChild.childNodes retourne un NodeList, et non un tableau, donc je suis pas sur que tu puisse créer un tableau directement de cette facon.[/QUOTE]ben mon tableau je le construit !

  6. #6
    Membre Expert Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Par défaut
    Autant pour moi, j'avais confondu ton array et ton tab (lundi matin, toussa )

    Quand tu dis que ton tableau est vide, tu le regardes ou? avant le return ou apres? Parce qu'on ne peut pas retourner de valeur dans le callback sur onreadystatechange...

    PS: tu peux faire voir le code appelant ta fonction?

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

Discussions similaires

  1. [ZF 1.9] Tableau dynamique (universel) en Ajax avec Jquey
    Par noiser007 dans le forum Zend Framework
    Réponses: 3
    Dernier message: 16/02/2010, 18h38
  2. Réponses: 9
    Dernier message: 13/12/2009, 13h28
  3. [AJAX] Tableau dynamique [AJAX/MySql]
    Par benoit63 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/10/2008, 19h52
  4. Tableau dynamique (Ajax)
    Par sliderman dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 23/05/2008, 22h16
  5. [Rico] Ajax - Open rico création de tableau dynamique
    Par Naruto69 dans le forum Bibliothèques & Frameworks
    Réponses: 0
    Dernier message: 08/04/2008, 17h57

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