|
|
|
|
- Exemple d'utilisation de la fonction AJAXExécute
Exemple d'utilisation de la fonction AJAXExécute Cet exemple permet de renvoyer une structure complexe dans une procédure appelée en Ajax pour exploiter le résultat dans une procédure navigateur.
// Appel d'une procédure Ajax qui retourne une chaîne Json sZone est une chaîne sZone = AJAXExécute(ajaxAppelSimple, ProcServeurRetourDonneesJson, "Tour Eiffel") // Transforme le buffer JSon reçu en objet EXTERNE JSON // Indique au compilateur de ne pas faire d'erreur sur JSON.xxxx (objet Javascript) stZone est un objet dynamique = JSON.parse(sZone) // Analyse du résultat SI PAS stZone.bTrouve ALORS Info("Zone non trouvée", stZone.sMessageErreur) SINON // Les points à afficher UnePosition est une géoPosition POUR n = 1 _À_ stZone.taCoordonnées..Occurrence UnePosition.Latitude = stZone.taCoordonnées[n].rLatitude UnePosition.Longitude = stZone.taCoordonnées[n].rLongitude CarteAjouteMarqueur(CARTE_Plan, UnePosition) FIN // Le centre de la carte UnePosition.Latitude = stZone.stCentre.rLatitude UnePosition.Longitude = stZone.stCentre.rLongitude CarteAffichePosition(CARTE_Plan, UnePosition) // Le zoom CARTE_Plan..Zoom = stZone.nZoom ToastAffiche("Zone " + stZone.sNomZone + " affichée") FIN
// ------------------------------------ // --Procédure serveur ProcServeurRetourDonneesJson // ------------------------------------ PROCÉDURE ProcServeurRetourDonneesJson(... sParametreNomZone est une chaîne <utile="Nom de la zone dont on veut les coordonnées">) // Structure pour mémoriser un point st_PointCarte est une Structure rLatitude est un réel rLongitude est un réel FIN // Structure à renvoyer à la page st_DonneesPourCodeNavigateur est une Structure sNomZone est une chaîne // Pour gérer les cas d'erreur bTrouve est un booléen sMessageErreur est une chaîne // Centre de la carte et zoom stCentre est un st_PointCarte nZoom est un entier // Autres points taCoordonnées est un tableau de st_PointCarte FIN // Variable pour stocker ce qu'il faut envoyer à la page stResPourPage est un st_DonneesPourCodeNavigateur // Variable pour les coordonnées d'un point stUnPoint est un st_PointCarte // Nom de la zone stResPourPage.sNomZone = sParametreNomZone // On pourrait rechercher la zone dans une base : // SI pas HLitRecherchePremier(Zone, NomZone, sParametreNomZone) ALORS // stResPourPage.bTrouve = Faux // stResPourPage.sMessageErreur = "Zone non trouvé" // SINON // stResPourPage.bTrouve = Vrai // // puis lecture des informations de la zone // // etc. // FIN // Ici on renvoie des données en dur stResPourPage.bTrouve = Vrai // Ajout d'un point stUnPoint.rLatitude = 48.860501 stUnPoint.rLongitude = 2.295683 TableauAjoute(stResPourPage.taCoordonnées, stUnPoint) // Ajout d'un autre point stUnPoint.rLatitude = 48.859352 stUnPoint.rLongitude = 2.297374 TableauAjoute(stResPourPage.taCoordonnées, stUnPoint) // Ajout d'un autre point stUnPoint.rLatitude = 48.856397 stUnPoint.rLongitude = 2.293040 TableauAjoute(stResPourPage.taCoordonnées, stUnPoint) // Ajout d'un autre point stUnPoint.rLatitude = 48.857478 stUnPoint.rLongitude = 2.291176 TableauAjoute(stResPourPage.taCoordonnées, stUnPoint) // etc... // Centre de la carte stResPourPage.stCentre.rLatitude = 48.858288 stResPourPage.stCentre.rLongitude = 2.294453 // Zoom de la carte stResPourPage.nZoom = 15 // Sérialise les données à transmettre à la page en JSON bufJson est un Buffer Sérialise(stResPourPage, bufJson, psdJSON) RENVOYER bufJson
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|