Ajax : responseText ne charge pas les accents ni une carte google

Ajax : responseText ne charge pas les accents ni une carte google - HTML/CSS - Programmation

Marsh Posté le 18-09-2006 à 17:01:28    

Bonjour à tous,
 
Merci pour votre aide sur ma requête XMLHttpRequest qui ne fonctionne pas parfaitement.
 
J'effectue une requête XMLHttpRequest d'un fichier PHP dont je récupère le résultat par responseText.
 
Le fichier PHP est censé renvoyer du texte au navigateur et une carte Google maps. Mais je ne récupère dans le premier fichier que le texte (les accents se transformant d'ailleurs en ?) et pas la carte. Le fichier PHP fonctionne sans problème indépendamment, je pense que le problème provient du choix de responseText, que je dois sans doute interpréter plutôt que de l'affichier directement via un innerHTML.
 
Qu'en pensez-vous ?
Avez-vous déjà rencontré le même problème ?
 
Merci beaucoup !

Reply

Marsh Posté le 18-09-2006 à 17:01:28   

Reply

Marsh Posté le 18-09-2006 à 17:04:25    

pour les accents > problème d'encodage à mon avis.
pour la carte ... Euh tu l'envoies comment? juste son adresse?

Reply

Marsh Posté le 18-09-2006 à 17:23:28    

Pour l'encodage des accents, une idée à ce sujet justement ?
 
Quant à la carte :
 
Extrait de mon fichier HTML :

Code :
  1. function mafonction(var1)
  2.  {
  3.  var XMLHttpRequestObject = false;
  4.  if (window.XMLHttpRequest) {
  5.   XMLHttpRequestObject = new XMLHttpRequest();
  6.   } else if (window.ActiveXObject) {
  7.   XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHttp" );
  8.   }
  9.  if(XMLHttpRequestObject) {
  10.  var fichier_externe;
  11.  fichier_externe = "http://www.monsite.fr/carte.php?recherche=" + var1 ;
  12.   XMLHttpRequestObject.open("GET", fichier_externe);
  13.   XMLHttpRequestObject.onreadystatechange = function()
  14.   {
  15.   if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
  16.    var affichage = XMLHttpRequestObject.responseText;
  17.    document.getElementById('resultat').innerHTML = affichage;
  18.    delete XMLHttpRequestObject;
  19.    XMLHttpRequestObject = null;
  20.    }
  21.   }
  22.   XMLHttpRequestObject.send(null);
  23.   }
  24.  }
  25. </script>
  26. <div id="resultat"></div>


 
Structure de mon fichier PHP, carte.php, la carte Google s'affichant dans le div "map" :

Code :
  1. <div>
  2. TEXTE
  3. </div>
  4. <div id="map"></div>
  5. <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=$CLE" type="text/javascript"></script>
  6. <script type="text/javascript">
  7. var map = new GMap2 (document.getElementById("map" ));
  8. ...
  9. </script>

Reply

Marsh Posté le 18-09-2006 à 17:31:53    

bin responseText est "toujours" en utf8, le reste de ta page j'en sais rien [:spamafote]
Si tu veux pouvoir changer l'encode il va falloir que tu passes par responseXML et que tu lui spécifies en entête:

Code :
  1. <?xml version="1.0" encoding="SkeTuVeux" standalone="yes"?>


 
Ensuite je t'avoue que je n'ai jamais essayé de mettre des balises scripts directement via un innerHTML. Jai des profonds doute sur la faisabilité de ce truc...
A mon avis tu ferais mieux de ne renvoyer qye l'adresse de ton src, mettre un id sur ta balise script, au retour faire un document.getElementById('idDuBouzin').src = adresse retournée. Puis lancer un new GMap2 ...


Message édité par anapajari le 18-09-2006 à 17:32:20
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed