Bonjour,

Je récupère des données depuis une API météo, j'aimerais que ça s'actualise toute les X minutes pour ça je fais une requête AJAX qui pointe vers mon fichier PHP qui s'occupe lui de communiquer avec l'API, si la requête a fonctionné je lance un setTimeout (je ne sais pas si c'est clair :D )

Mon fichier PHP me renvoit des données, je stock ces dernière dans des variable (par exemple la température etc..), mais je ne sais pas comment dire a mon code JS de récupérer ces données. Car quand je vais voir l'état de la requête dans l'outil de dévéloppement, je vois que ma requête a fonctionné mais qu'aucun contenu n'a été récupéré.

Mon code PHP qui communique avec l'API

<?php
  include 'functions.php';
    $json_string = file_get_contents("http://api.wunderground.com/api/CLE_D'API/geolookup/conditions/lang:FR/q/FR/Nantes.json");
    $parsed_json = json_decode($json_string);
    $icon = $parsed_json->{'current_observation'}->{'icon'};
    $weather = $parsed_json->{'current_observation'}->{'weather'};
    $temperature = round($parsed_json->{'current_observation'}->{'temp_c'});

J'ai essayé de faire un return, mais ça ne fonctionne pas, j'ai aussi lu quelque part qu'il fallait faire un echo, car "l'ajax lis ta page comme le ferait un navigateur", sans plus de résultat non plus.

4 réponses


Salut,

Si tu veux renvoyer tes data encodées en JSON tu dois faire un echo json_encode($tes_data) à la fin de ton script.
Après, tu devrais formatter les data que tu reçois en tableau associatif en faisant un coup de $parsed_json = json_decode($json_string, true);, ça sera plus simple ;)

Laznet
Auteur

Je suis obligé d'utiliser du JSON pour que ça transmette les données ?

betaWeb a tout dit, par contre, sans connaitre cette API, et au vue de l'url, es-tu sûr de ne pas avoir donné ta clé privée ?

Et pour répondre à ta dernière question, non tu n'es pas obligé, mais pourquoi faire compliqué quand on peut faire simple (le JSON étant reconnu nativement par Javascript, autant en profiter).

Laznet
Auteur

Parfait, je reçois bien mes donnée, mais comment je pourrais faire pour l'envoyer a un autre fichier PHP.
Car je peux inclure des données avec la selection d'élément, mais comment les transmettre a php pour les mettre dans une variable.

Et oui ^^ c'était ma clé, merci.