Page 1 sur 1

htmlentities et js

Posté : 26 janv. 2007, 18:10
par Invité
Bonjour à tous,
Quel est l'équivalent de htmlentities (php) en javascript?

Posté : 26 janv. 2007, 18:13
par Ajoloca
Bonjour,

essaie escape()

Posté : 26 janv. 2007, 18:18
par Invité
avec escape(), le navigateur me renvoie des caractères comme ceci :
%0A%0D%0A%3Cstyle%3E%0D%0Ap.t_fiche%20%

En fait j'utilise ajax pour appeler et afficher une page php. Dans cette page php, il y a des caractères spéciaux: ô, é, è...

Quelle fonction utiliser pour avoir un affichage normal? faut -il que je laisse les caractères comme ça ou faut il que je les transforme en &egrave, &eacute... ?

Posté : 26 janv. 2007, 18:21
par Ajoloca
Re,

Ça c'est autre chose,

Tout dépends,
d'où viennent ces caractères??? une base, un fichier ...
Comment tu déclares ton encodage de la page par rapport à la source.

Posté : 26 janv. 2007, 18:30
par Invité
j'ai essayé le header en utf8 et iso, ça ne change rien.
Par contre la page chargée par ajax est un fichier php contenant du html et du php, mais pas de déclaration d'entête.

Posté : 26 janv. 2007, 18:46
par Ajoloca
Re,

Si tu n'écris pas directement avec JS, exp. alert('ton texte'), la meilleure solution c'est de transformer tes caractères accentués et autres entités HTML par leur représentation respective
à ===> à
é ===> é
.....

Posté : 26 janv. 2007, 19:07
par Invité
c bien ça le pb. j'ai remplacé les caractères par leurs entités, et ajouté le fichier php à la page courante avec innerhtml mais ya toujours cet affichage anormal...

Posté : 26 janv. 2007, 19:21
par Ajoloca
Montre-nous ça,
car c'est étrange.

Posté : 26 janv. 2007, 19:44
par Invité
mon header
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Mes 2 fonctions ajax (instanciation et appel)
<script type="text/javascript">

function getXhr(){
                                var xhr = null; 
				if(window.XMLHttpRequest) // Firefox et autres
				   xhr = new XMLHttpRequest(); 
				else if(window.ActiveXObject){ // Internet Explorer 
				   try {
			                xhr = new ActiveXObject("Msxml2.XMLHTTP");
			            } catch (e) {
			                xhr = new ActiveXObject("Microsoft.XMLHTTP");
			            }
				}
				else { // XMLHttpRequest non supporté par le navigateur 
				   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
				   xhr = false; 
				} 
                                return xhr
			}
			
			/**
			* Méthode qui sera appelée sur le click du bouton
			*/
			function go(country){
				var xhr = getXhr()
				// On défini ce qu'on va faire quand on aura la réponse
				xhr.onreadystatechange = function(){
					// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
					if(xhr.readyState == 4 && xhr.status == 200){
						document.getElementById('cartes').innerHTML = xhr.responseText;
					//alert(xhr.responseText);
					}
				}
				xhr.open("GET","../Afimmo/templates/afimmo/maps/" + country + ".php");
				xhr.send(null);
			}
</script>
Un boud du code de la page appelée
		<p class="sst_fiche">Croissance d&eacute;mographique</p> 
		<p class="itm_fiche">2,4% </p>
		
		<p class="sst_fiche">Densit&eacute; de la population</p>
		<p class="itm_fiche">10 habitants/km²</p> 
		
		<p class="sst_fiche">Population urbaine</p>
		<p class="itm_fiche">32,3% </p>
		 
		<p class="sst_fiche">Esp&eacute;rance de vie</p>
		<p class="itm_fiche">41ans </p>
		<p class="sst_fiche">Mortalit&eacute; infantile</p> 
		<p class="itm_fiche">12,2% </p>
		
		<p class="sst_fiche">Alphab&eacute;tisation</p>
		<p class="itm_fiche">19% </p>
Voili voilou

Posté : 26 janv. 2007, 19:52
par Ajoloca
Re,

Ton fichier .php doit avoir un echo, print, printf, ...

comme ceci
echo '<p class="sst_fiche">Croissance d&eacute;mographique</p> 
        <p class="itm_fiche">2,4% </p>
        
        <p class="sst_fiche">Densit&eacute; de la population</p>
        <p class="itm_fiche">10 habitants/km²</p> 
        
        <p class="sst_fiche">Population urbaine</p>
        <p class="itm_fiche">32,3% </p>
         
        <p class="sst_fiche">Esp&eacute;rance de vie</p>
        <p class="itm_fiche">41ans </p>
        <p class="sst_fiche">Mortalit&eacute; infantile</p> 
        <p class="itm_fiche">12,2% </p>
        
        <p class="sst_fiche">Alphab&eacute;tisation</p>
        <p class="itm_fiche">19% </p>';