Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
838 connectés 

  FORUM HardWare.fr
  Programmation
  Javascript/Node.js

  [RÉSOLU] [Javascript/HTML] Uncaught ReferenceError: x is not defined

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RÉSOLU] [Javascript/HTML] Uncaught ReferenceError: x is not defined

n°2324868
wigleg
Posté le 28-11-2018 à 10:26:55  profilanswer
 

Bonjour !
 
Lors du chargement de ma page, j'ai cette erreur dans la console : "Uncaught ReferenceError: logo is not defined at onload". Je n'arrives pas à trouver d'où ca vient. L'idéex c'est que selon le temps, mon logo change. J'ai les logos, ils fonctionnent, mais j'arrive pas à les afficher avec XHR.  
 
Merci d'avance pour votre aide.
 

Code :
  1. var logoNeige;
  2. var logoSoleil;
  3. var logoVent;
  4. var logoBrouillard;
  5. var temps;
  6. var weather;
  7. var weather2;
  8. var weather3;
  9. var url = "https://api.openweathermap.org/data/2.5/weather?q=bidart&APPID=92146035fff315dd4b30cd1eb5996bb4";
  10. var donneesmet;
  11. var logotemps
  12. const xmlhttp = new XMLHttpRequest;
  13. xmlhttp.onreadystatechange = function logo(logotemps) {
  14.     if (this.readyState == 4 && this.status == 200) {
  15.         xmlhttp.addEventListener("load", reqListener);
  16.         xmlhttp.open("GET", url, true);
  17.         JSON.parse(xmlhttp)
  18.     }
  19.     function displayBlock(temps) {
  20.         logoNeige = document.getElementById("neige" );
  21.         logoVent = document.getElementById("vent" );
  22.         logoBrouillard = document.getElementById("brouillard" );
  23.         weather = donneesmet.weather[0].main
  24.         weather2 = donneesmet.weather[0].description
  25.         weather3 = donneesmet.wind.speed
  26.    
  27.         if (weather == "Snow" ) {
  28.             logoNeige.style.display="block";
  29.         } else if (weather3 > 0) {
  30.             logoVent.style.display="block";
  31.         } else if (weather2 == "Fog" ) {
  32.             logoBrouillard.style.display="block";
  33.         }
  34.     }
  35. }

 
 
Voici mon JS.
 

Code :
  1. <html>
  2.     <head>
  3.         <link rel="stylesheet" type="text/css" href="css/test.css"  media="all">
  4.         <script type="text/javascript" src="js/test.js"></script>
  5.         <title>Test HTML5</title>
  6.     </head>
  7.     <body onload="javascript:logo();">


 
Voici mon HTML


Message édité par wigleg le 29-11-2018 à 14:18:57
mood
Publicité
Posté le 28-11-2018 à 10:26:55  profilanswer
 

n°2324871
dede_sav
Posté le 28-11-2018 à 10:39:15  profilanswer
 

Bonjour,
 
Rigolo comme code :)

Code :
  1. xmlhttp.onreadystatechange = function logo(logotemps) {
  2.     if (this.readyState == 4 && this.status == 200) {
  3.         xmlhttp.addEventListener("load", reqListener);
  4.         xmlhttp.open("GET", url, true);
  5.         JSON.parse(xmlhttp)
  6.     }


devrait plutôt ressembler à ça =>  

Code :
  1. function logo(logotemps) {
  2.     if (this.readyState == 4 && this.status == 200) {
  3.         xmlhttp.addEventListener("load", reqListener);
  4.         xmlhttp.open("GET", url, true);
  5.         JSON.parse(xmlhttp)
  6.     }
  7. xmlhttp.onreadystatechange = logo;

n°2324872
wigleg
Posté le 28-11-2018 à 10:46:41  profilanswer
 

Je débute à peine c'est pour ça ^^'

n°2324873
wigleg
Posté le 28-11-2018 à 10:48:34  profilanswer
 

Merci.
 
Je viens d'essayer. Je n'ai plus l'erreur mais mon logo ne veux pas s'afficher.

n°2324885
wigleg
Posté le 28-11-2018 à 11:41:04  profilanswer
 

Pourquoi mon logo ne s'affiche pas dans ce cas là ?

n°2324902
mechkurt
Posté le 28-11-2018 à 14:25:16  profilanswer
 

Tu peux debugger dans la console de ton navigateur en ajoutant des

Code :
  1. console.log(nom_de_ta_variable);


dans ton code.
 
La console de debuggage s'ouvre en faisant un clic droit inspecter l’élément dans ton navigateur.
 
Tu pourrais par exemple vérifier que ton json est bien récupéré ou que temp est bien conforme à ce que tu attends...
 
Sinon personnellement je passes par des bibliothèques (jquery, mootools ou autre) pour mes requêtes AJAX pour une plus grande compatibilité de navigateur, à voir si c'est nécessaire pour toi ou pas :
https://caniuse.com/#search=XMLHttpRequest


---------------
D3
n°2324905
mechkurt
Posté le 28-11-2018 à 14:32:12  profilanswer
 

Tu devrais faire un https://codepen.io/ un http://jsfiddle.net/ ou nous donner un accès à une ressource en ligne, ce serait plus facile pour nous à debugger...
 
PS: Et tu devrais modifier

Code :
  1. 9. var url = "https://api.openweathermap.org/data/2.5/weather?q=bidart&APPID={maclefquejeneveuxpaspartagerpubliquement}";


Surtout si cette clef est privé, avant que Google et archive.org ne l'ajoutes dans leur cache...


Message édité par mechkurt le 28-11-2018 à 14:33:24

---------------
D3
n°2324907
wigleg
Posté le 28-11-2018 à 14:43:56  profilanswer
 

En fait la clef n'est plus valide due au grand nombre de requêtes que je lui ai envoyé. Du coup je vais mettre la clé d'exemple de Open Weather sur le codepen

n°2324908
wigleg
Posté le 28-11-2018 à 14:49:03  profilanswer
 
n°2324917
mechkurt
Posté le 28-11-2018 à 15:53:50  profilanswer
 

J'ai avancé un peu en cherchant des tutoriaux de xhr en JS pur...
https://codepen.io/anon/pen/NEOvRq
Avec ça tu as maintenant un objet dont tu doit pouvoir récupérer la propriété qui t’intéresses !


---------------
D3
mood
Publicité
Posté le 28-11-2018 à 15:53:50  profilanswer
 

n°2324925
wigleg
Posté le 28-11-2018 à 16:32:00  profilanswer
 

Merci !
 
Alors du coup maintenant j'ai le json parsé dans la console (nickel j'en avais besoin)
 
Maintenant plutot que de passer par "if" et "else if" pour afficher mes logos, je vais utiliser "switch case" (parce que mon patron me le demande ahah !)  
 
Je reviendrai si j'ai un autre problème, mais celui que j'avais de base est résolu. Merci beaucoup !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Javascript/Node.js

  [RÉSOLU] [Javascript/HTML] Uncaught ReferenceError: x is not defined

 

Sujets relatifs
code HTML d'un bouton bas / haut de page dans Google siteImage bouton html JavaScript
[JS][RESOLU] e not defined sur MozillaSoucis intégration date dans HTML/JSON
Format HTML DébutantSoucis avec du code CSS sur HTML.
[HTML/PHP/CSS] Diff de 2 données[HTML] Formulaire fonctionnel sur navigateur mais bugué sur instagram.
Plus de sujets relatifs à : [RÉSOLU] [Javascript/HTML] Uncaught ReferenceError: x is not defined


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR