A voir également:
- Récupération variable Object par JSON
- Shockwave flash object - Télécharger - Divers Web & Internet
- Convertisseur récupération de texte - Guide
- Recuperation video youtube - Guide
- Récupération message whatsapp - Guide
- Recuperation compte gmail - Guide
4 réponses
jordane45
Messages postés
38464
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 avril 2025
4 741
3 juin 2019 à 17:31
3 juin 2019 à 17:31
Bonjour,
Déjà.. merci de nous poster ton code DIRECTEMENT sur le forum.
(en utilisant les balises de code : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code )
Ensuite, que contient ton fichier http://www.planeteprovence.com/tests/exemple_data.php ? (son code )
car la variable "donnees" n'est pas un JSON valide semblerait-il ....
Le souci ne vient donc pas de ton JS .. mais plutôt des données retournées par ton PHP.... (à la limite tu peux essayer de faire un JSON.parse sur ta variable "donnees" ... mais je pense qu'il serait préférable de retourner un JSON propre depuis le php.
Au passage, voici une petite fonction qui permet de formater les retours d'ajax en un JSON valide
Déjà.. merci de nous poster ton code DIRECTEMENT sur le forum.
(en utilisant les balises de code : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code )
Ensuite, que contient ton fichier http://www.planeteprovence.com/tests/exemple_data.php ? (son code )
car la variable "donnees" n'est pas un JSON valide semblerait-il ....
Le souci ne vient donc pas de ton JS .. mais plutôt des données retournées par ton PHP.... (à la limite tu peux essayer de faire un JSON.parse sur ta variable "donnees" ... mais je pense qu'il serait préférable de retourner un JSON propre depuis le php.
Au passage, voici une petite fonction qui permet de formater les retours d'ajax en un JSON valide
/** * Retourne le résultat au format JSON / UTF-8 * @data ; Array contenant les données à renvoyer * @status et @status_message .. voir les codes HTTP : https://fr.wikipedia.org/wiki/Liste_des_codes_HTTP */ function jsonResponse($status=404, $status_message = "age non trouvée", $data = array()) { header('Content-Type: application/json ;charset=utf-8'); $httpStatusCode = $status; $httpStatusMsg = $status_message; $phpSapiName = substr(php_sapi_name(), 0, 3); if ($phpSapiName == 'cgi' || $phpSapiName == 'fpm') { header('Status: ' . $httpStatusCode . ' ' . utf8_decode($httpStatusMsg)); } else { $protocol = isset($_SERVER['SERVER_PROTOCOL']) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0'; header($protocol . ' ' . $httpStatusCode . ' ' . $httpStatusMsg); } $response['status'] = $status; $response['status_message'] = $status_message; $response['data'] = $data; $json_response = json_encode($response); echo $json_response; exit(); }
<?php $myObj->longitude = 6.0077500000; $myObj->latitude = 43.5571560000; $myObj->varvillage = 12; $myObj->donnees = "{\"Gîtes de la Réparade - Locations vacances\": { \"lat\":43.5066550000,\"lon\":6.0154220000,\"icon\": \"3.png\"},\"Le Vallon des Palombes - Chambres d\'hôtes\": { \"lat\":43.5865420000,\"lon\":6.1019080000,\"icon\": \"2.png\"},\"La Demeure de Fanette - Chambres et restaurant\": { \"lat\":43.5840707000,\"lon\":6.1096542000,\"icon\": \"2.png\"},\"Maison Provençale - Locations vacances\": { \"lat\":43.5336219672,\"lon\":6.1229978249,\"icon\": \"3.png\"},\"La Bastide des Templiers - Chambres d\'hôtes\": { \"lat\":43.4754924092,\"lon\":5.9604476743,\"icon\": \"2.png\"},\"Le Mas des Tours - Chambres d\'hôtes\": { \"lat\":43.5311890000,\"lon\":6.1481170000,\"icon\": \"2.png\"},\"La Maison de Marlin - Location vacances\": { \"lat\":43.5291710000,\"lon\":6.1485830000,\"icon\": \"3.png\"},\"Le Pra de Pe - Chambres d\'hôtes\": { \"lat\":43.5275700000,\"lon\":6.1481400000,\"icon\": \"2.png\"},\"Chambres Conde\": { \"lat\":43.5290670000,\"lon\":6.1487290000,\"icon\": \"2.png\"},\"La Licorne - Chambres d\'hôtes\": { \"lat\":43.5279000000,\"lon\":6.1483200000,\"icon\": \"2.png\"},\"Domaine de Cornillières - Locations vacances\": { \"lat\":43.4734290000,\"lon\":5.9169186000,\"icon\": \"3.png\"},\"Mme Maestri - Location Vacances\": { \"lat\":43.5276700000,\"lon\":6.1495700000,\"icon\": \"3.png\"},\"Domaine de Nestuby - Chambres d\'hôtes\": { \"lat\":43.5037400000,\"lon\":6.1364100000,\"icon\": \"2.png\"},\"Une Campagne en Provence - Chambres d\'hôtes\": { \"lat\":43.4622500000,\"lon\":5.9368000000,\"icon\": \"2.png\"},\"La Basse Combe - Location Vacances\": { \"lat\":43.5294651893,\"lon\":6.1521526475,\"icon\": \"3.png\"},\"Mon Cabanon - Location Vacances\": { \"lat\":43.5121000000,\"lon\":6.1490700000,\"icon\": \"3.png\"},\"Les Oliviers - Chambres d\'hôtes\": { \"lat\":43.5205100000,\"lon\":6.1539400000,\"icon\": \"2.png\"},\"Une Campagne en Provence - Location Vacances\": { \"lat\":43.4532300000,\"lon\":5.9391100000,\"icon\": \"3.png\"},\"Le Chat Luthier - Chambres d\'hôtes\": { \"lat\":43.4748800000,\"lon\":6.1211000000,\"icon\": \"2.png\"},\"La Radassière - Chambres d\'hôtes\": { \"lat\":43.5232200000,\"lon\":6.1625700000,\"icon\": \"2.png\"},\"silence et Grillons - Chambres d\'hotes\": { \"lat\":43.6621954945,\"lon\":6.1093344495,\"icon\": \"2.png\"},\"Mas le Chêne - Location vacances\": { \"lat\":43.4999161000,\"lon\":6.1666933000,\"icon\": \"3.png\"},\"La Bastide des Pignes - Chambres d\'hôtes\": { \"lat\":43.6644290000,\"lon\":6.1136420000,\"icon\": \"2.png\"},\"Le Mas Provencal - Chambres d\'hôtes\": { \"lat\":43.6639400000,\"lon\":6.1146900000,\"icon\": \"2.png\"},\"Mas de L\\\' Olivette - Chambres d\'hôtes\": { \"lat\":43.5250500000,\"lon\":6.1860200000,\"icon\": \"2.png\"},\"Jas de la Rimade - Location Vacances\": { \"lat\":43.4620900000,\"lon\":6.1369700000,\"icon\": \"3.png\"},\"Les Chênes d\\\'Or - Locations Vacances\": { \"lat\":43.6558973167,\"lon\":6.1441576121,\"icon\": \"3.png\"},\"la Bastide de la Messine - Chambres d\'hôtes\": { \"lat\":43.4122300000,\"lon\":6.0433600000,\"icon\": \"2.png\"},\"Hôtellerie du Couvent Royal ***\": { \"lat\":43.4532900000,\"lon\":5.8635200000,\"icon\": \"1.png\"},\"Hôtel De France ****\": { \"lat\":43.4531600000,\"lon\":5.8603100000,\"icon\": \"1.png\"}}"; $myJSON = json_encode($myObj); echo $myJSON; ?>
jordane45
Messages postés
38464
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 avril 2025
4 741
4 juin 2019 à 11:31
4 juin 2019 à 11:31
Dans ton $myObj->donnees ... Tu retournes une STRING.... (qui contient du json... )
Donc dans ton code JS .. faut faire un JSON PARSE
Une autre solution.. c'est de convertire ce json en Array avant de le renvoyer...
Donc dans ton code JS .. faut faire un JSON PARSE
Une autre solution.. c'est de convertire ce json en Array avant de le renvoyer...
$myObj->donnees = json_decode("{\"Gîtes de la Réparade - Locations vacances\": { \"lat\":43.5066550000,\"lon\":6.0154220000,\"icon\": \"3.png\"},\"Le Vallon des Palombes - Chambres d\'hôtes\": { \"lat\":43.5865420000,\"lon\":6.1019080000,\"icon\": \"2.png\"},\"La Demeure de Fanette - Chambres et restaurant\": { \"lat\":43.5840707000,\"lon\":6.1096542000,\"icon\": \"2.png\"},\"Maison Provençale - Locations vacances\": { \"lat\":43.5336219672,\"lon\":6.1229978249,\"icon\": \"3.png\"},\"La Bastide des Templiers - Chambres d\'hôtes\": { \"lat\":43.4754924092,\"lon\":5.9604476743,\"icon\": \"2.png\"},\"Le Mas des Tours - Chambres d\'hôtes\": { \"lat\":43.5311890000,\"lon\":6.1481170000,\"icon\": \"2.png\"},\"La Maison de Marlin - Location vacances\": { \"lat\":43.5291710000,\"lon\":6.1485830000,\"icon\": \"3.png\"},\"Le Pra de Pe - Chambres d\'hôtes\": { \"lat\":43.5275700000,\"lon\":6.1481400000,\"icon\": \"2.png\"},\"Chambres Conde\": { \"lat\":43.5290670000,\"lon\":6.1487290000,\"icon\": \"2.png\"},\"La Licorne - Chambres d\'hôtes\": { \"lat\":43.5279000000,\"lon\":6.1483200000,\"icon\": \"2.png\"},\"Domaine de Cornillières - Locations vacances\": { \"lat\":43.4734290000,\"lon\":5.9169186000,\"icon\": \"3.png\"},\"Mme Maestri - Location Vacances\": { \"lat\":43.5276700000,\"lon\":6.1495700000,\"icon\": \"3.png\"},\"Domaine de Nestuby - Chambres d\'hôtes\": { \"lat\":43.5037400000,\"lon\":6.1364100000,\"icon\": \"2.png\"},\"Une Campagne en Provence - Chambres d\'hôtes\": { \"lat\":43.4622500000,\"lon\":5.9368000000,\"icon\": \"2.png\"},\"La Basse Combe - Location Vacances\": { \"lat\":43.5294651893,\"lon\":6.1521526475,\"icon\": \"3.png\"},\"Mon Cabanon - Location Vacances\": { \"lat\":43.5121000000,\"lon\":6.1490700000,\"icon\": \"3.png\"},\"Les Oliviers - Chambres d\'hôtes\": { \"lat\":43.5205100000,\"lon\":6.1539400000,\"icon\": \"2.png\"},\"Une Campagne en Provence - Location Vacances\": { \"lat\":43.4532300000,\"lon\":5.9391100000,\"icon\": \"3.png\"},\"Le Chat Luthier - Chambres d\'hôtes\": { \"lat\":43.4748800000,\"lon\":6.1211000000,\"icon\": \"2.png\"},\"La Radassière - Chambres d\'hôtes\": { \"lat\":43.5232200000,\"lon\":6.1625700000,\"icon\": \"2.png\"},\"silence et Grillons - Chambres d\'hotes\": { \"lat\":43.6621954945,\"lon\":6.1093344495,\"icon\": \"2.png\"},\"Mas le Chêne - Location vacances\": { \"lat\":43.4999161000,\"lon\":6.1666933000,\"icon\": \"3.png\"},\"La Bastide des Pignes - Chambres d\'hôtes\": { \"lat\":43.6644290000,\"lon\":6.1136420000,\"icon\": \"2.png\"},\"Le Mas Provencal - Chambres d\'hôtes\": { \"lat\":43.6639400000,\"lon\":6.1146900000,\"icon\": \"2.png\"},\"Mas de L\\\' Olivette - Chambres d\'hôtes\": { \"lat\":43.5250500000,\"lon\":6.1860200000,\"icon\": \"2.png\"},\"Jas de la Rimade - Location Vacances\": { \"lat\":43.4620900000,\"lon\":6.1369700000,\"icon\": \"3.png\"},\"Les Chênes d\\\'Or - Locations Vacances\": { \"lat\":43.6558973167,\"lon\":6.1441576121,\"icon\": \"3.png\"},\"la Bastide de la Messine - Chambres d\'hôtes\": { \"lat\":43.4122300000,\"lon\":6.0433600000,\"icon\": \"2.png\"},\"Hôtellerie du Couvent Royal ***\": { \"lat\":43.4532900000,\"lon\":5.8635200000,\"icon\": \"1.png\"},\"Hôtel De France ****\": { \"lat\":43.4531600000,\"lon\":5.8603100000,\"icon\": \"1.png\"}}",true);
Merci beaucoup Jordane !
Voici le code php, je testerai ton script dès que possible.
Je suis déjà passé par des validators et le JSON a l'air valide, mais je revérifierai.
Encore merci pout ton aide.
JF
Voici le code php, je testerai ton script dès que possible.
Je suis déjà passé par des validators et le JSON a l'air valide, mais je revérifierai.
Encore merci pout ton aide.
JF
J'ai testé ta suggestion mais cela ne marche pas:
http://www.planeteprovence.com/tests/variables_par_JSON2.php
et
http://www.planeteprovence.com/tests/exemple_data2.php
Peut-être me suis-je planté ?
Quant au JS, il y a déjà un parse ligne 43, je mets le code dans un autre post.
http://www.planeteprovence.com/tests/variables_par_JSON2.php
et
http://www.planeteprovence.com/tests/exemple_data2.php
Peut-être me suis-je planté ?
Quant au JS, il y a déjà un parse ligne 43, je mets le code dans un autre post.
<?php $myObj->longitude = 6.0077500000; $myObj->latitude = 43.5571560000; $myObj->varvillage = 12; $myObj->donnees = json_decode("{\"Gîtes de la Réparade - Locations vacances\": { \"lat\":43.5066550000,\"lon\":6.0154220000,\"icon\": \"3.png\"},\"Le Vallon des Palombes - Chambres d\'hôtes\": { \"lat\":43.5865420000,\"lon\":6.1019080000,\"icon\": \"2.png\"},\"La Demeure de Fanette - Chambres et restaurant\": { \"lat\":43.5840707000,\"lon\":6.1096542000,\"icon\": \"2.png\"},\"Maison Provençale - Locations vacances\": { \"lat\":43.5336219672,\"lon\":6.1229978249,\"icon\": \"3.png\"},\"La Bastide des Templiers - Chambres d\'hôtes\": { \"lat\":43.4754924092,\"lon\":5.9604476743,\"icon\": \"2.png\"},\"Le Mas des Tours - Chambres d\'hôtes\": { \"lat\":43.5311890000,\"lon\":6.1481170000,\"icon\": \"2.png\"},\"La Maison de Marlin - Location vacances\": { \"lat\":43.5291710000,\"lon\":6.1485830000,\"icon\": \"3.png\"},\"Le Pra de Pe - Chambres d\'hôtes\": { \"lat\":43.5275700000,\"lon\":6.1481400000,\"icon\": \"2.png\"},\"Chambres Conde\": { \"lat\":43.5290670000,\"lon\":6.1487290000,\"icon\": \"2.png\"},\"La Licorne - Chambres d\'hôtes\": { \"lat\":43.5279000000,\"lon\":6.1483200000,\"icon\": \"2.png\"},\"Domaine de Cornillières - Locations vacances\": { \"lat\":43.4734290000,\"lon\":5.9169186000,\"icon\": \"3.png\"},\"Mme Maestri - Location Vacances\": { \"lat\":43.5276700000,\"lon\":6.1495700000,\"icon\": \"3.png\"},\"Domaine de Nestuby - Chambres d\'hôtes\": { \"lat\":43.5037400000,\"lon\":6.1364100000,\"icon\": \"2.png\"},\"Une Campagne en Provence - Chambres d\'hôtes\": { \"lat\":43.4622500000,\"lon\":5.9368000000,\"icon\": \"2.png\"},\"La Basse Combe - Location Vacances\": { \"lat\":43.5294651893,\"lon\":6.1521526475,\"icon\": \"3.png\"},\"Mon Cabanon - Location Vacances\": { \"lat\":43.5121000000,\"lon\":6.1490700000,\"icon\": \"3.png\"},\"Les Oliviers - Chambres d\'hôtes\": { \"lat\":43.5205100000,\"lon\":6.1539400000,\"icon\": \"2.png\"},\"Une Campagne en Provence - Location Vacances\": { \"lat\":43.4532300000,\"lon\":5.9391100000,\"icon\": \"3.png\"},\"Le Chat Luthier - Chambres d\'hôtes\": { \"lat\":43.4748800000,\"lon\":6.1211000000,\"icon\": \"2.png\"},\"La Radassière - Chambres d\'hôtes\": { \"lat\":43.5232200000,\"lon\":6.1625700000,\"icon\": \"2.png\"},\"silence et Grillons - Chambres d\'hotes\": { \"lat\":43.6621954945,\"lon\":6.1093344495,\"icon\": \"2.png\"},\"Mas le Chêne - Location vacances\": { \"lat\":43.4999161000,\"lon\":6.1666933000,\"icon\": \"3.png\"},\"La Bastide des Pignes - Chambres d\'hôtes\": { \"lat\":43.6644290000,\"lon\":6.1136420000,\"icon\": \"2.png\"},\"Le Mas Provencal - Chambres d\'hôtes\": { \"lat\":43.6639400000,\"lon\":6.1146900000,\"icon\": \"2.png\"},\"Mas de L\\\' Olivette - Chambres d\'hôtes\": { \"lat\":43.5250500000,\"lon\":6.1860200000,\"icon\": \"2.png\"},\"Jas de la Rimade - Location Vacances\": { \"lat\":43.4620900000,\"lon\":6.1369700000,\"icon\": \"3.png\"},\"Les Chênes d\\\'Or - Locations Vacances\": { \"lat\":43.6558973167,\"lon\":6.1441576121,\"icon\": \"3.png\"},\"la Bastide de la Messine - Chambres d\'hôtes\": { \"lat\":43.4122300000,\"lon\":6.0433600000,\"icon\": \"2.png\"},\"Hôtellerie du Couvent Royal ***\": { \"lat\":43.4532900000,\"lon\":5.8635200000,\"icon\": \"1.png\"},\"Hôtel De France ****\": { \"lat\":43.4531600000,\"lon\":5.8603100000,\"icon\": \"1.png\"}}",true); $myJSON = json_encode($myObj); echo $myJSON; ?>
jordane45
Messages postés
38464
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 avril 2025
4 741
4 juin 2019 à 15:58
4 juin 2019 à 15:58
Ton json n'est pas valide...
Pourquoi, d'ailleurs, vouloir stocker en json dans la variable donnees ??
Moi je ferai plutôt un array....
Pourquoi, d'ailleurs, vouloir stocker en json dans la variable donnees ??
Moi je ferai plutôt un array....
JFLeroi
>
jordane45
Messages postés
38464
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 avril 2025
4 juin 2019 à 16:18
4 juin 2019 à 16:18
J'ai besoin de passer 4 variables dont une Object (données) et comme cela fonctionnait côté console (les valeurs sont identiques, je pensais pour les exploiter comme en dur...