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 :

Lire plusieurs fichiers JSON


Sujet :

JavaScript

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 98
    Points : 41
    Points
    41
    Par défaut Lire plusieurs fichiers JSON
    Salut
    Dans une de mes pages j'utilise une fonction pour appeler plusieurs fichiers JSON en fonction du choix de l'utilisateur.
    Donc, je dois, dynamiquement, changer le nom de la variable qui permet d'accèder aux contenus de ces pages.
    Voici mon code
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    <html>
    <head>
    <title>test:lit JSON </title>
    <!--  Je declare les JSON -->
    <script type="text/javascript"src="JOSN_PO.js"></script>
    <script type="text/javascript"src="JOSN__12_Periods.js"></script>
    <script type="text/javascript"src="JOSN_tomb.js"></script>
    <script> 
    // Je vais traiter le choix de l'usager
    //
    function litJSON()
    {
     var txtSaisi=document.getElementById("texte").value;
     
     var size=0;
    // Un tableau pour stocker les 9 choix
    // J'en mes ici 3
     var arrVar=new Array;
    	 arrVar[0]='PO';
    	 arrVar[1]='_12_Periods';
    	 arrVar[2]='tomb';
    // Je teste les entrées
     if(txtSaisi='PO')
      {  
         size = arrVar[0].features.length;
      // Erreur ici:  arrVar[0].features is undefined 
     }
      //
       if(txtSaisi='_12_Periods')
      {
      size = arrVar[1].features.length;
      }
      //
       if(txtSaisi='tomb')
      {
      size = arrVar[2].features.length;
      }
     }
     
    </script>
     
    </head>
    <body> 
      <INPUT TYPE="text" id="texte" />  
      <input type="Button" id="myButton" value="Entrer" onClick="litJSON();" /> 
    </body>
     
    </html>
    Quand j'execute, je reçois une erreur comme si ma variable est non définie!
    Auriez-vous une réponse?
    Merci
    Abel

  2. #2
    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 : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    De grosses erreurs conceptuelles dans ton code...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     var arrVar=new Array;
    	 arrVar[0]='PO';
    	 arrVar[1]='_12_Periods';
    	 arrVar[2]='tomb';
    Déjà, il est préférable de passer par var arrVar = [] pour définir un tableau. Mais bref, ensuite, tu remplis ton tableau avec des chaines de caractères.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    size = arrVar[0].features.length;
    Ici, arrVar[0] correspond donc à une chaine et ne possède donc pas de propriété features...

    Ensuite
    ici, tu fais une affectation, pas une comparaison ! L'équivalent booléen d'une affectation étant true, tu ne peux rentrer que dans cette condition

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 98
    Points : 41
    Points
    41
    Par défaut
    Salut
    Merci pour les remarques.
    Tu dis:
    Ici, arrVar[0] correspond donc à une chaine et ne possède donc pas de propriété features
    Le message d'erreur que j'ai va dans ton sens. Message:
    'arrVar.2.features.length' is null or not an object.
    Si je fais alert sur cette variable je reçois la bonne valeur.
    Mais, règler cela?
    Merci
    Abel

  4. #4
    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 : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Si j'extrapole ce que je vois de ton code,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript"src="JOSN_PO.js"></script>
    doit être supposé créer une variable de type objet nommée PO.

    Dans ce cas, il ne faut pas remplir ton tableau avec des chaines mais avec ces variables !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     var arrVar= [PO, _12_Periods, tomb];
    alert(arrVar[0].features.length);

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 98
    Points : 41
    Points
    41
    Par défaut
    Salut
    Si je fais:
    var arrVar= [PO, _12_Periods, tomb];
    cela ne marchera pas. Quand l'affectation dans le tableau est faite de cette manière cela ne fonctionne pas si le nombre de variables est égale ou dépasse 3.

  6. #6
    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 : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Ben désolé, mais je ne fais pas dans la divination...
    J'ai essayé de t'aider au mieux compte tenu du peu d'informations données, mais là j’atteins la limite de ce que je peux deviner de ce que tu veux faire et de ton code...

  7. #7
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 98
    Points : 41
    Points
    41
    Par défaut
    Merci pour les explications, cela m' a avancé.
    Désolé si ma réponse était dure. Ce n'est mon intention.
    C'est la frustration de ma mauvaise qualité de code qui resort.
    Abel

Discussions similaires

  1. [AJAX] recupérer plusieur fichiers JSON
    Par Emcy dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/10/2007, 14h41
  2. Réponses: 2
    Dernier message: 27/04/2007, 13h45
  3. Lire plusieurs fichier à la suite
    Par ecthelion dans le forum Langage
    Réponses: 12
    Dernier message: 08/04/2007, 16h20
  4. [Débutant] Lire plusieurs fichiers txt dans un répertoire
    Par leneuf dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 03/10/2006, 12h39

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