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 :

Générer un tableau associatif avec javascript


Sujet :

JavaScript

  1. #1
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut Générer un tableau associatif avec javascript
    Bonjour tout le monde,

    J'ai un tableau (qui est généré avec PHP), ce tableau contient des TR et TD, chaque TD contient un input text qui sont identifié avec un ID unique.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <table border="1" id="table_de_selection">
    	<tr>
               <td >
    		<input type="text" id="NOM_ANNEE" onkeyup="filtre('NOM_ANNEE','2','annees')"/>
    	   </td>
    	   <td >
                    <input type="text" id="Nom_complet" onkeyup="filtre('Nom_complet','2','annees')"/>
    	  </td>
    	</tr>
    	</table>
    Donc, dès que j'appuie sur le clavier, j'appelle une fonction javascript qui s'appelle "filtre".

    Je ne sais jamais quel tableau a été créé car c'est par rapport à une table qui est choisie dans une liste déroulante contenant plusieurs tables.

    Ma question :

    J'ai une variable javascript de type tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var tableau_data = new Array();
    J'aurais voulu savoir si il était possible de créer un tableau associatif contenant comme en-tête le nom de l'ID de la zone de texte et comme valeur la valeur de la zone de texte du tableau ayant comme ID 'table_de_selection'.

    Cela donnerait donc pour mon exemple de tableau ci-dessus :

    Indice
    NOM_ANNEE Nom_complet
    Valeurs
    BA1 1ère année de Bachelier</citation>
    Je devrais ensuite passer ce tableau à une page PHP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    xhr.open("POST","Scripts/Administrateur/AJAX/filtre.php",true);
    	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    	xhr.send("champ="+champ+"&nombre_champs="+nombre_champs+"&table="+table);
    Mais cela, c'est une autre histoire.

    Merci d'avance pour votre aide.

    beeges

  2. #2
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Salut,

    Un tableau associatif fonctionne sur le principe clé/valeur. Tu mets ce que tu veux comme clé (chaines, objets, ...) . Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    tableau_data["XXXX"]= YY;
    Donc tu peux organiser comme bon te semble, c'est juste à toi de concevoir la structure qu'aura ton tableau.

    Ensuite pour le poster vers le server, le plus simple est de le serializer via JSON.

    ERE

  3. #3
    Inactif
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 63
    Points : 81
    Points
    81
    Par défaut
    Citation Envoyé par emmanuel.remy Voir le message
    Salut,

    Un tableau associatif fonctionne sur le principe clé/valeur. Tu mets ce que tu veux comme clé (chaines, objets, ...) . Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    tableau_data["XXXX"]= YY;
    Donc tu peux organiser comme bon te semble, c'est juste à toi de concevoir la structure qu'aura ton tableau.

    Ensuite pour le poster vers le server, le plus simple est de le serializer via JSON.

    ERE
    Je propose dans ce cas de ne pas utiliser un tableau (array), mais un objet (object)

    Un tableau contenant des methodes et des propriétés qui n'ont rien à faire là dans l'utilisation qu'on souhaite en faire.

    Un objet utilisé comme une hashmap est le meilleur compromis et de toute facon c'est ce qu'il faut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    var myAssoc = {
      key1 : 'value',
      key2 : 'kikoo',
       key3 : 1234
     
    }
    Et ça passerait très bien en tant que paramètre à la methode ajax de jquery qui automatiquement le transformera en querystring

  4. #4
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Re,

    @Gsnalf: globalement d'accord avec toi, si ce n'est que je restais cantonné dans la démarche de beegees. Et enfin, il n'y a pas que jQuery dans la vie !! C'est vrai de tous les frameworks: ils serializent tous automatiquement les objets dans le cas de paramètres d'appel AJAX.


    ERE

  5. #5
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Bonjour,

    Merci à vous deux pour vos réponses.

    J'avais bien compris le principe de tableaux associatifs en javascript (car je l'utilise en PHP).

    Le problème est de savoir comment l'alimenter car j'ai à chaque fois un tableau (table) différent.

    - Je dois donc créer une boucle (je connais à chaque fois le nombre d'itérations)
    - Récupérer le premier ID de la zone de texte (clé) et la valeur de cette zone de texte (valeur)
    - Je passe ensuite à la prochaine zone de texte (la prochaine cellule de mon tableau) et je fais la même chose.

    Donc sur ce tableau contenant 2 zones de texte, j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <table border="1" id="table_de_selection">
    	<tr>
               <td >
    		<input type="text" id="NOM_ANNEE" onkeyup="filtre('NOM_ANNEE','2','annees')"/>
    	   </td>
    	   <td >
                    <input type="text" id="Nom_complet" onkeyup="filtre('Nom_complet','2','annees')"/>
    	  </td>
    	</tr>
    	</table>
    Clé 1 : NOM_ANNEE Valeur 1 : "BA1"
    Clé 2 : Nom_complet Valeur 2 : "1ère année de Bachelier"

    Je dois donc utiliser ce genre de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Clé 1 = document.getElementById('NomId').value;
    Valeur 1 = document.getElementById('NomId').value;
    Mais par rapport au choix du visiteur, on peut choisir un autre tableau qui est composé de plusieurs TR et donc de plusieurs zones de texte.

    EDIT :

    Je me demande si l'utilisation du DOM pour la récupération des valeurs des zones de textes et leur ID ne serait pas la solution ?

    Savez-vous comment je pourrais faire cela ?

    Merci pour votre aide.

    beegees

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/05/2009, 17h21
  2. tableau associatif avec 2 requêtes
    Par Vetchostar dans le forum Requêtes
    Réponses: 3
    Dernier message: 29/10/2008, 14h20
  3. [Tableaux] Tableau associatif avec des array
    Par Piccolo_son dans le forum Langage
    Réponses: 6
    Dernier message: 18/12/2007, 08h23
  4. Réponses: 2
    Dernier message: 20/10/2006, 10h25
  5. [Tableaux] tableau associatif avec select
    Par jive dans le forum Langage
    Réponses: 2
    Dernier message: 22/09/2006, 19h45

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