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 :

[Classes JS] - selecteur non reconnu


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2018
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 183
    Par défaut [Classes JS] - selecteur non reconnu
    Bonjour,

    J'ai un souci avec cette classe. J'ai une collection de cartes dont l'identifiant unique est id_collection. request est l'appel à une API qui redescend la liste des collections, le container, c'est la div où j'aimerais que ça écrive, id_collection et collection sont des valeurs courantes telles qu'existantes dans la base de données.

    Nom : Capture d’écran du 2023-12-07 12-25-26.png
Affichages : 171
Taille : 89,0 Ko

    Mon code instancié :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    console.log($("#fd_collection"));
     
                var collection = new Collection({
                  request : "metadata_collection.php",
                  container:"#fd_collection",
                  id_collection : e.features[0].properties.id_collection,
                  collection: e.features[0].properties.nom_collection
                })
     
                collection.list();

    Si je renseigne "container" dans l'instance de classe (comme présenté), cela ne fonctionne pas, ma liste déroulante n'est pas peuplée,

    Si je renseigne "#fd_collection" directement dans la classe, cela fonctionne.

    Je pensais à un problème lié au chargement du DOM mais le console.log en début de code, renvoie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    jQuery.fn.init [select#fd_collection.collection_selection]
    0
    : 
    select#fd_collection.collection_selection
    length
    : 
    1
    [[Prototype]]
    : 
    Object(0)
    }

    Est ce que qqun voit une solution à ce problème ?

    Merci pour vos retours

    Sylvain

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 496
    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 496
    Par défaut
    Bonjour,

    Est ce que vous mettez le code JS initialisant l'objet collection dans un contexte $(document).ready() ou $(function(){}) ?

    Puis attention à l'option dataType d'ajax, "T" en majuscule..., et pourquoi vous utilisez complete au lieu de done ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2018
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 183
    Par défaut
    Oui l'objet est appelé dans une fonction qui elle-même est appelée avec $function.

    Sinon j'utilise complete pour utiliser responseJSON, parfois success. J'utilise pas done, je connais pas trop ce truc là pour tout dire.
    Dans le cas ci-dessous, ça ne fonctionne tjs pas... :/

    Nom : Capture d’écran du 2023-12-07 14-36-15.png
Affichages : 152
Taille : 65,2 Ko

  4. #4
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 496
    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 496
    Par défaut
    Ok, donc le problème est au niveau du mot clé this à l'intérieur d'ajax, ça pointe sur la fonction de "success/complete" d'ajax elle même et pas sur la class Collection.

    Si vous mettez un console.log("this container :",this.container) à l'intérieur de success ou complete, vous verrez que ça renvoie undefined.

    Pour éviter ceci, rajouter l'option context:this dans les options d'ajax.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $.ajax({
    ....
    ...,
    context:this
    });
    Ou bien utilisez une fonction fléchée pour success ou complete sans avoir a rajouter l'option context :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    success:(data)=>{
      ....
    }

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Bonjour,
    deux choses :

    #1 : merci de mettre le code, entre balises [CODE][/CODE], dans la discussion plutôt que des images. Il est ainsi plus facile de faire des copies de code pour test ou citation.

    #2 : comme indiqué par Toufik83 c'est le même problème que celui soulevé dans ton autre discussion : [class JS] Return d'une valeur ....

  6. #6
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2018
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 183
    Par défaut
    Effectivement ça fonctionne, merci bcp :-)

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

Discussions similaires

  1. Classe non reconnue lors de la publication sur Internet
    Par Delphi-ne dans le forum ASP.NET
    Réponses: 16
    Dernier message: 28/01/2011, 13h19
  2. Header non reconnu comme apparenant à ma classe
    Par _gargamel_ dans le forum C++
    Réponses: 1
    Dernier message: 11/08/2007, 00h44
  3. Classe non reconnue et pourtant bel-et-bien inclue
    Par Vitaly dans le forum Langage
    Réponses: 19
    Dernier message: 18/07/2007, 00h45
  4. la classe CContainer non reconnu
    Par bpy1401 dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 01/12/2006, 08h21
  5. [KeyListener] Non reconnue dans toute la classe
    Par Arnaud F. dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 23/05/2006, 16h38

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