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 :

Résultats avec Foreach


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Analyste IP + Programmation
    Inscrit en
    Février 2016
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste IP + Programmation
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2016
    Messages : 59
    Par défaut Résultats avec Foreach
    Bonjour,

    Merci pour l'aide de mon post d'y hier....

    Là je frappe un mur malgré mes tentatives de manipulation

    J'ai un bug pour un array dont je ne réussi pas à rentrer dedans...

    Ce code fonctionne

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
            var somme = 0;
            var arrayTest = [1,2,3,4,5];
            arrayTest.forEach(function (chiffre){
                    somme+=chiffre;
                });     
            console.log(somme);

    (5) [1, 2, 3, 4, 5]0: 1
    1: 2
    2: 3
    3: 4
    4: 5
    length: 5
    __proto__: Array(0)

    Code javasvript : 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
     
    fetch('liste.php')
                .then(function(contenu) {     
                // Retourne l'ensemble avec ses sous ensembles des ouvrages      
                return contenu.json(); 
            })            
                .then(function(listeOuvrages) { 
                // Ouvrage correspond à un sous ensemble de l'ensemble
                listeOuvrages.forEach(function (ouvrage){
                    listeID.push(ouvrage);
                });
    });
     
     
    listeID.forEach(function (ouvrage){
                            console.log("test"); // je ne suis pas capable de voir le string test
     
                        });

    Résultat :
    []
    0:"hunt1999ppj"
    1:"gamma1995dpe"
    2:"fowler1999rid"
    3:"asterix"
    4:"dan"
    5:"danttttttt"
    6:"gamma1995dpeffff"
    7:"gamma1995dpehhhhh"
    8:"gamma1995hhhhdpehhhhh"
    9:"gamma1995dpefffhhhhh"
    length:10
    __proto__:Array(0)

    Je ne comprends pas la différence entre les deux.....

  2. #2
    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
    https://jsfiddle.net/

    manifestement c'est avant le forEach ... j'ai bien le bon log,

    tu es sur du contenu de ton array ?.
    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 !

  3. #3
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 208
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    listeID.forEach(function (ouvrage){
        console.log("test"); // je ne suis pas capable de voir le string test
    });
    à quel moment est appelé ton code et quand fais-tu ton affichage console, si l'array est vide tu ne rentres pas dans la boucle.

  4. #4
    Membre confirmé
    Homme Profil pro
    Analyste IP + Programmation
    Inscrit en
    Février 2016
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste IP + Programmation
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2016
    Messages : 59
    Par défaut
    Merci pour vos réponse !

    C'est vrai qu'il manque du contexte....J'ai un formulaire de plusieurs champs pour ajouter potentiellement un nouvel ouvrage...

    Au moment de cliquer sur le bouton «Ajouter»

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function ajoutOuvrage(){
        const form = document.querySelector("#formulaire-ajout");    
        form.addEventListener('submit', function (e){ 
            e.preventDefault(); // Ca evite envoyer le formulaire tout de suite    
     
     
    .....etc

    Un peu plus loin, dans cette séquence de code, on dirait que je ne peux pas ré-utiliser une variable que j'aurai modifié avec succès pourtant
    Code javascript : 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
     
    var champIdUnique = false
    fetch('liste.php')
                .then(function(contenu) {     
                // Retourne l'ensemble avec ses sous ensembles des ouvrages      
                return contenu.json(); 
            })            
                .then(function(listeOuvrages) { 
                // Ouvrage correspond à un sous ensemble de l'ensemble
                listeOuvrages.forEach(function (ouvrage){
                  // j'ai retiré temporairement mon listeID array
                    if (ouvrage[0] === idName.value){
                        champIdUnique = true; // j'aimerais comprendre ce comportement que notre prof nous a pas expliqué...
                    }                        
                });                        
            });
    });
     
    console.log(champIdUnique); // ça va donner false malheureusement

    sera utilisé pour vérifier si le id saisie dans un formulaire est different de ceux qui se trouvent dans le array «listeID»


    Voilà

    Merci SpaceFrog pour le site , je vais utiliser https://jsfiddle.net/

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 208
    Par défaut
    Il faut que tu comprennes que fetch travaille de manière asynchrone, le résultat n'est donc pas immédiatement disponible, alors que ton instruction console.log est d’exécutée immédiatement après le fecth, donc ta variable champIdUnique n'est pas encore modifiée.

  6. #6
    Membre confirmé
    Homme Profil pro
    Analyste IP + Programmation
    Inscrit en
    Février 2016
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste IP + Programmation
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2016
    Messages : 59
    Par défaut
    Ça je m'en suis rendu compte assez vite

    Avons nous des moyens de ré-utiliser une variable qu'on aurait modifiée à l'intérieur du fetch.....

    Ma solution qui marche mais qui n'est pas ma préféré est celle là :

    Code javascript : 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
     
    fetch('liste.php')
                .then(function(contenu) {     
                // Retourne l'ensemble avec ses sous ensembles des ouvrages      
                return contenu.json(); 
            })            
                .then(function(listeOuvrages) { 
                // Ouvrage correspond à un sous ensemble de l'ensemble
                listeOuvrages.forEach(function (ouvrage){
                    if (ouvrage[0] === idName.value){ // j'utilise cette logique car si un id est identique à la liste du fetch, je saisie un message en particulier 
                        idName.style.border = "2px solid red";
                        listeErreur.innerHTML += "<li>Veuillez saisir un id unique</li>";
                    }                        
                });                        
            });
     
    if (idName.value === ""){
       idName.style.border = "2px solid red";
       listeErreur.innerHTML += "<li>Veuillez saisir un id</li>"; 
       champVide = true;
    } else if (listeErreur.value === ""){ // si la valeur listeErreur.value est null, cela veut dire que nous avons pas eu id identique à la liste du fetch...
          idName.style.border = "2px solid green";
    }

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

Discussions similaires

  1. [Joomla!] résultat d'une requete en tableau avec foreach
    Par alfred5 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 13/05/2010, 09h06
  2. Réponses: 1
    Dernier message: 07/02/2008, 21h40
  3. Générer un fichier résultat avec sépateur ;
    Par soulryo dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 30/08/2005, 09h57
  4. Générer un fichier résultat avec sépateur ;
    Par soulryo dans le forum Langage SQL
    Réponses: 3
    Dernier message: 29/08/2005, 12h29

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