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 :

table associatif en JAVASCRIPT


Sujet :

JavaScript

  1. #1
    Membre �clair� Avatar de moukit233
    D�veloppeur informatique
    Inscrit en
    Mai 2009
    Messages
    240
    D�tails du profil
    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Mai 2009
    Messages : 240
    Par d�faut table associatif en JAVASCRIPT
    salut tout le monde,
    je suis en train de developpez un site web.......
    j'ai developp� une fonction js pour ajouter de clients dans un dojox.grid,
    dans cette fonction j'ai cre� un tableau pour stocker les lignes ajouter dans le grid
    voici le code de cette fonction.js

    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
     
     var tabNewVal = new Array();
         function gotVal(items, request){
             for (var i = 0; i < items.length; i++) { 
                 //recuperation des valeurs
                 id   = grid.store.getValue(items[i], "id");
                 nom = grid.store.getValue(items[i], "nom");
                 prenom   = grid.store.getValue(items[i], "prenom");
     
                 tab[i] = new Array(id, nom, prenom);
             }
         } 
         grid.store.fetch({query: {}, onComplete: gotVal}); 
     
         var tab = new Array();
         tab = dojo.toJson(tabNewVal, true);
         alert(tab);
    mais j'ai trouv� un diffuculte pour recuperer les valeur stocke� dans la tableu
    vous pouvez m'aidez?
    ou un moyen pour declarer un tableau associatif c a dire :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
     
    var tab = new array('id'=> 'valeur','nom'=>'valeur','prenom'=>'valeur'))
    mais en javascript
    vous vouyez???

    merci d'avance

  2. #2
    Membre exp�riment� Avatar de nod__
    Profil pro
    �tudiant
    Inscrit en
    Avril 2009
    Messages
    176
    D�tails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 176
    Par d�faut
    Les tableaux associatifs n'existent pas en javascript.

    Les objets par contre...

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    var objet = {"id":"valeur", "nom":"valeur"};
    etc. Tu remarqueras aussi que c'est exactement le format JSON, elle est pas belle la vie ?

    (et a noter que tu peux mal utiliser les Array() pour faire ce que tu veux, mais c'est mal et moins efficace).

  3. #3
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POO�te
    Inscrit en
    Avril 2008
    Messages
    2 652
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activit� : POO�te

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par d�faut
    Je ne connais pas Dojo mais je sais que la lib Prototype fournit un objet Hash qui apporte de nombreuses m�thodes tr�s utiles aux tableaux associatifs que tu d�cris : peut-�tre existe-t-il un �quivalent dans l'API de Dojo ?

  4. #4
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    Les tableaux associatifs n'existent pas en javascript.
    heu comment appelles tu ceci:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    tabasso=new Array();
    tabasso['un']=1;
    tabasso['deux']=2;
     
    alert(tabasso['deux'])

    array litt�ral ... la nuance est subtile ...
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  5. #5
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    D�tails du profil
    Informations personnelles :
    �ge : 57

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par d�faut
    Salut,

    Citation Envoy� par nod__ Voir le message
    Les tableaux associatifs n'existent pas en javascript.

    Les objets par contre...

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    var objet = {"id":"valeur", "nom":"valeur"};
    etc. .
    Humm ... Depuis quand "les tableaux associatifs n'existent pas en javascript" ? Si je ne me trompe, un objet EST un tableau associatif !

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
        var objet = {"id":"valeur", "nom":"Dupont"};
        alert(objet["id"]);
     
        objet["prenom"]="Eric";
        alert(objet["prenom"] + " "+ objet["nom"]);

    @moukit233: ton store impl�mente l'interface dojo.data.api.Write, tu disposes donc d'une fonction isDirty(item) qui indique si l'item a �t� modifi�. Et comme je suppose que tu utilises un ItemFileWriteStore, tu disposes aussi d'un tableau _pending._newItems qui enregistre ni plus ni moins que les items ajout� au store. Tu devrais peut-�tre plus simplement l'utiliser.

    N�anmoins si tu persistes dans ta d�marche, et comme RomainVALERI le pressentais , il existe un package dojox.collections qui dispose d'une class Dictionary qui correspond � ce que tu veux faire.

    ERE

  6. #6
    Membre Expert Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Par d�faut
    Les tableaux associatifs n'existent pas en javascript :
    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
      <title>Les tableaux associatifs n existent pas en javascript</title>
      <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
      <style type="text/css">
      /* code css */
      </style>
    </head>
    <body>
      <!-- code xhtml -->
      <script type="text/javascript">
      <!--
      tabasso=new Array();
      tabasso['un']=1;
      tabasso['deux']=2;
     
      alert(tabasso.length)
      //-->
      </script>
    </body>
    </html>
    On utilise un moyen d�tourn� pour les cr�er, les propri�t�s d'objets. Dans l'exemple ci-dessus on voit bien que le tableau � une taille de 0, car on a affect� des valeurs � ses propri�t�s et non ajout� des valeurs au tableau.

  7. #7
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Citation Envoy� par franculo_caoulene Voir le message
    Les tableaux associatifs n'existent pas en javascript :
    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
      <title>Les tableaux associatifs n existent pas en javascript</title>
      <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
      <style type="text/css">
      /* code css */
      </style>
    </head>
    <body>
      <!-- code xhtml -->
      <script type="text/javascript">
      <!--
      tabasso=new Array();
      tabasso['un']=1;
      tabasso['deux']=2;
     
      alert(tabasso.length)
      //-->
      </script>
    </body>
    </html>
    On utilise un moyen d�tourn� pour les cr�er, les propri�t�s d'objets. Dans l'exemple ci-dessus on voit bien que le tableau � une taille de 0, car on a affect� des valeurs � ses propri�t�s et non ajout� des valeurs au tableau.
    Pour ma part, je suis aussi de cet avis, autre d�monstration :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    tabasso=new Array();
      tabasso['un']=1;
      tabasso['deux']=2;
     
      alert(tabasso.un)
    qui d�montre bien que un est une propri�t� de tabasso et donc qu'il s'agit d'un objet et non d'un tableau.
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  8. #8
    Membre exp�riment� Avatar de nod__
    Profil pro
    �tudiant
    Inscrit en
    Avril 2009
    Messages
    176
    D�tails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 176
    Par d�faut
    h�h� m�me pas besoin de r�pondre, merci franculo_caoulene et bovino, j'aurais pas dit mieux


    On s'en sort parce que tout est objet en JS.

    a noter que tu peux mal utiliser les Array() pour faire ce que tu veux, mais c'est mal et moins efficace
    j'avoue y'a des jours ou j'adore me citer

  9. #9
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    franculo ...
    le coup du length de l'array asso a d�ja ete trait� dans les contributions me semble-t-il un boucle for in avec hasOwnProperty...
    et pour moi ce n'est pas parce qu'il n'arrive pas � donner directement un length que c'est pas un tableau asso m�me si on passe par des "propri�t�s"

    objet json ou array � propri�t� apr�s avec un ensemble de prototypes on peut rapidement combler cette petite lacune de javascript
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  10. #10
    Membre exp�riment� Avatar de nod__
    Profil pro
    �tudiant
    Inscrit en
    Avril 2009
    Messages
    176
    D�tails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 176
    Par d�faut
    Franchement je trouve que ce n'est pas une lacune. L'existence d'un objet Array est d�j� suffisamment diffuse pour pas rajouter encore les tableaux associatifs.

  11. #11
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Citation Envoy� par SpaceFrog Voir le message
    franculo ...
    le coup du length de l'array asso a d�ja ete trait� dans les contributions me semble-t-il un boucle for in avec hasOwnProperty...
    et pour moi ce n'est pas parce qu'il n'arrive pas � donner directement un length que c'est pas un tableau asso m�me si on passe par des "propri�t�s"

    objet json ou array � propri�t� apr�s avec un ensemble de prototypes on peut rapidement combler cette petite lacune de javascript
    Dans ce cas, ce comportement doit �tre consid�r� comme �trange :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    tabasso=new Array();
      tabasso['un']=1;
      tabasso['deux']=2;
     
      alert(tabasso.length);
      tabasso.push('cinq');
      alert(tabasso.length);
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  12. #12
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    prototype Beef

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    Array.prototype.push_elt=function()
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  13. #13
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    D�tails du profil
    Informations personnelles :
    �ge : 57

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par d�faut
    Re,

    Sans rentrer dans un d�bat qui d�passe le simple cadre de ce post, je trouve quand m�me que ass�ner � quelqu'un que "Javascript ne g�re pas les tableaux associatifs" rel�ve de la s�mantique plut�t que du pragmatisme.
    Ok les tableaux associatifs n'existent pas au sens strict du terme tel qu'on les connait et qu'on les d�finit par exemple en PHP (a priori la r�f�rence de moukit233). D'un autre c�t� une simple recherche sur le net avec les mots cl�s javascript tableau associatif renvoie de multiples r�ponses et tutoriels. Idem sur nos forums...

    De l� expliquer que Objet <=> Tableau associatif ne ma parait pas d�lirant, quitte � bien mettre en avant que c'est avant tout un Objet et non particuli�rement un Array ou autre. Et de montrer: (uniquement un exercice de style )
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
        var d= new Date();
        //ou var d = new RegExp(...)
        //... ou var d = new Array(); mais on est bien d'accord alors que ce qui 
        //nous intéresse est uniquement le fait que Array soit un Object...
        d["nom"]="DUPONT";
        d["prenom"]="Marc";
        alert(d["prenom"] + " " + d["nom"]);
    Et comme on parle d'Objet et non de Array, je ne vois pas pourquoi on se pose la question du .length

    ERE

  14. #14
    Membre �clair� Avatar de moukit233
    D�veloppeur informatique
    Inscrit en
    Mai 2009
    Messages
    240
    D�tails du profil
    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Mai 2009
    Messages : 240
    Par d�faut
    bonjour
    merci de votre reponse

    moi j'ai trouv� une moyenne pour creer un tableau associatif en javascript :
    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
     
      var tableau = new Array();
     
         grid.store.fetch({query: {}, onComplete: function(items, request){
         var tab= new Array(); 
         for (var i = 0; i < items.length; i++) { 
     
     
         var obj = { 
     
                 id                 : grid.store.getValue(items[i], "id"),
                 champ1             : grid.store.getValue(items[i], "champ1"),              
                 champ2             : grid.store.getValue(items[i], "champ2"),
                 champ3             : grid.store.getValue(items[i], "champ3")
                 };
         tab.push(obj); 
         } 
         tableau = dojo.toJson(tab, true); 
     
         }
         });
    Bon dev

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [PDO] question PDO nouveau enregistrement avec table associatif
    Par kate59 dans le forum PHP & Base de donn�es
    R�ponses: 2
    Dernier message: 30/06/2011, 11h55
  2. table associatif a une clef et deux valeurs
    Par arm3366 dans le forum Langage
    R�ponses: 3
    Dernier message: 27/06/2011, 20h33
  3. G�n�rer un tableau associatif avec javascript
    Par beegees dans le forum G�n�ral JavaScript
    R�ponses: 4
    Dernier message: 10/04/2010, 10h59
  4. R�cup�rer un tableau html multidimensionnel associatif sous javascript
    Par Mormegil dans le forum G�n�ral JavaScript
    R�ponses: 4
    Dernier message: 16/04/2007, 17h47
  5. Vider une table MySQL suite � javascript:confirm()
    Par anutka dans le forum G�n�ral JavaScript
    R�ponses: 11
    Dernier message: 16/09/2005, 12h16

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