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 :

Fonction retourne [Object, object] au lieu du contenu de l'objet


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Webmarketer
    Inscrit en
    Avril 2017
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Avril 2017
    Messages : 26
    Par défaut Fonction retourne [Object, object] au lieu du contenu de l'objet
    Hello à tous,

    Je débute en javascript donc si vous pouviez être patients avec moi, je vous en serais reconnaissante


    J'essaye de faire un formulaire de commentaires qui publie les commentaires au clic.
    Chaque commentaire est un objet avec plusieurs valeurs renseignées dans le formulaire (nom, prénom et commentaire).

    J'ai un array qui regroupe les commentaires publiés en temps qu'objets. Ma démarche est la suivante:

    J'ai une fonction qui récupère ce qui a été renseigné dans le formulaire à la soumission -> Création de commentaire.

    Une autre fonction ajoute le commentaire créé à l'array de commentaires déjà existants.

    Comme je débute, je me sers de la fonction alert() pour être sûre que chaque étape fonctionne correctement. Pour le moment, ma fonction fonctionne pour aller récuperer les données entrées dans le formulaire et je vois leurs assignations à mon nouvel objet mais quand ça arrive à la fin de ma fonction, j'ai [object Object] qui s'affiche et je n'arrive pas à comprendre pourquoi...

    Si vous pouviez me conseiller sur où je me gourre, ça me serait super utile!

    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
    const newComment= {
        nameIcon: '',
        commentDate:'',
        userName: '',
        commentInput: ''
    }
    var newCommentName = '';
    var newCommentInput ='';
     
    function createComment (){
        newCommentName = document.getElementById("Name").value;
        newComment.userName = newCommentName;
        newCommentInput = document.getElementById("Comment").value;
        newComment.commentInput = newCommentInput;
    }
    function addComment(){
        commentsTable.unshift(newComment);
    }
    var button = document.querySelector('#Btn')
    button.onclick = function(event) {
    	// prevent the webpage from reloading
        event.preventDefault();
        createComment();
        // addComment();
        alert(newComment);
        document.querySelector('.comments__published').innerText = commentsTable;
    }
    D'avance merci,
    Marion

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Salut,

    Je vous conseil d'utiliser la console plutôt que alert...

  3. #3
    Membre averti
    Femme Profil pro
    Webmarketer
    Inscrit en
    Avril 2017
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Avril 2017
    Messages : 26
    Par défaut
    Merci pour ta réponse.... Effectivement, la console me montre bien que l'objet a bien récupérer mes données... par contre ça semble coincer à cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        document.querySelector('.comments__published').innerText = commentsTable;
    Il me donne toujours [Object, object]

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Oui car dans ce genre de situation on essai d'afficher un objet comme si c'était une string (je crois que dans ce cas la méthode toString est appelée implicitement/automatiquement)...

    Voici une explication (source : https://developer.mozilla.org/fr/doc...ng#Description ) :
    Chaque object possède une méthode toString() qui est appelée de façon automatique à chaque fois que l'objet doit être représenté sous forme de texte ou à chaque fois qu'on utilise un objet et que la valeur attendue est une chaîne de caractères. Par défaut, chaque objet qui descend d'Object hérite de la méthode toString(). Si cette méthode n'est pas surchargée, toString() renvoie "[object type]", où type est le type de l'objet.
    Je ne peux pas tester votre code alors dites moi ce que vous voulez faire exactement.

    PS : à part ça il y a quelques soucis" dans votre code...

  5. #5
    Membre averti
    Femme Profil pro
    Webmarketer
    Inscrit en
    Avril 2017
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Webmarketer

    Informations forums :
    Inscription : Avril 2017
    Messages : 26
    Par défaut
    Ah merci, je vais aller étudier ça maintenant!

    Pour les soucis, je veux bien que vous me les montriez si possible?

  6. #6
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Ben par exemple la variable commentsTable n'est pas définie et pourquoi newComment est déclarée comme une constante alors que les valeurs de ses propriétés peuvent changer et c'est toujours le même objet qui est ajouté au tableau, à la fin vous allez vous retrouver avec plusieurs fois le même objet...

    Bon c'est un peu compliqué mais vous comprendrez mieux quand vous serez heurtée au problème alors on pourra corriger...

    Avec quel html vous testez votre code pour que je puisse tester moi aussi ?

Discussions similaires

  1. Fonction retourne plusieurs objects
    Par CLeBeR dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 01/05/2016, 23h09
  2. Réponses: 5
    Dernier message: 18/03/2010, 15h50
  3. Erreur quand je retourne Object[][] suite à un RPC
    Par Wiliam_Walas dans le forum GWT et Vaadin
    Réponses: 4
    Dernier message: 08/05/2008, 08h27
  4. générique <T> retourne Object
    Par LeXo dans le forum Langage
    Réponses: 6
    Dernier message: 21/08/2007, 19h01
  5. [MySQL] select count retourne "Object id #x"
    Par webrider dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 11/06/2006, 19h37

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