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

AJAX Discussion :

Impossible d'accéder à variable en dehors du fetch


Sujet :

AJAX

  1. #1
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 126
    Par défaut Impossible d'accéder à variable en dehors du fetch
    Bonjour à tous,

    Je souhaite récupérer la variable "pagination" en dehors du fetch pour pouvoir lui appliquer un eventlistener, j'ai beau avoir transformé ça en async/await et avoir déclaré la variable en dehors du fetch, rien n'y fait... Que fais-je mal ?

    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
    //fonction filtre selon l'onglet actif choisi
    let pagination;
    export async function filtrerOnglets(url) {
      try {
        let response = await fetch(url, {
          method: "GET",
          cache: "no-cache",
          headers: {
            "X-Requested-With": "XMLHttpRequest",
            "Content-Type": "Application/json",
          },
        });
        let data = await response.json();
        tabContent.innerHTML = await data.content;
        pagination = document.querySelectorAll(".tabs__content span a");
        console.log(pagination);
      } catch (error) {
        alert("Erreur " + error);
      }
    }
     
    //filtrage si pagination
    pagination.forEach((el) => {
      el.addEventListener("click", (e) => {
        e.preventDefault;
        const urlPagination = e.target.getAttribute("href");
        const url = urlPagination;
        console.log(url);
      });
    });

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 498
    Par défaut
    Bonjour,

    Vous pouviez continuer le traitement à l'intérieur de la fonction et déplacer la boucle forEach juste après la ligne 16, sinon et si vous voulez vous servir de la fonction crée, utilisez la notion des promesses :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    filtrerOnglets("...url valide...")
    .then(a=>
    	a.forEach((el) => {
    		el.addEventListener("click", (e) => {
    			e.preventDefault;
    			const urlPagination = 
    			e.target.getAttribute("href");
    			const url = urlPagination;
    			console.log(url);
    		});
    	})
    );

  3. #3
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 126
    Par défaut
    Bonjour Toufik83, merci d'avoir répondu...

    Alors oui, bien évidement je pouvais continuer la fonction à partir de la ligne 16 mais j'ai oublié de mentionner que j'ai besoin que la fonction filtrerOnglets(url) soit alimentée avec cette nouvelle url en remplacement de l'ancienne :

    Je ne pouvais récupérer la variable "pagination" que dans le fetch car non visible avant; mon intention étant ensuite d'envoyer la nouvelle url produite par l'event listener au click dans une variable pouvant être réutilisée en rappelant la fonction "filtrerOnglets(url)" de nouveau pour re-quêter de nouveau lorsqu'on clique sur un lien de pagination.

    Il faut donc que je puisse obtenir la variable "pagination" en dehors de la fonction sauf si il existe une autre méthode ...

Discussions similaires

  1. Réponses: 5
    Dernier message: 23/03/2023, 16h38
  2. Impossible d'accéder à mes méthodes/variables d'une autre clasee
    Par Vivino dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 27/04/2016, 20h33
  3. Impossible d'accéder à une variable
    Par 3Dgirl dans le forum Débuter
    Réponses: 5
    Dernier message: 20/05/2009, 14h16
  4. Impossible d'accéder aux tables non créées par dbo
    Par Pete dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 07/10/2005, 14h01
  5. Réponses: 4
    Dernier message: 11/03/2005, 20h31

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