Bonjour,
j'ai un soucis d'affichage/encodage d'une chaîne en HTML.
Sur ma base MySql est enregistré une chaîne encodée utf8_general_ci.
Je récupère cette chaîne via PHP, dans une boucle while, et l'insère dans un tableau Javascript :
<script language="javascript" type="text/javascript">
var commentTabJS = new Array();
<?php //la fonction/requête de récupération
$contenu = aLaUne();
//la boucle
while (list($id, $donnees) = each($contenu)){
//données brut (ex:réalisé par machin.<br />Carte...)
$str = $donnees['commentaires'];
//je décode les é, etc.
$str = html_entity_decode($str, ENT_QUOTES, 'UTF-8');
//je vire les retours chariot
$str = str_replace(CHR(13).CHR(10),"",$str);
//j'encode ma chaîne "cleanée" pour l'insérer dans un tableau Javascript
$str = htmlentities($str, ENT_QUOTES, 'UTF-8');
echo 'commentTabJS.push("'.$str.'");';
} ?>
</script>
Ensuite, j'utilise jQuery pour afficher cette chaîne dans une DIV (class="informations") :
<script language="javascript" type="text/javascript">
function loadContenu(i){
var iOK = i.substr(4);
//je récupère le bon texte en fonction de l'ID du bouton sélectionné
var texte = commentTabJS[iOK];
//Et là c'est la m... la chaîne est bien en HTML mais s'affiche tel quel...
//Les balises s'affichent comme du texte...
//J'ai fait un essai avec une fonction trouvée ici : http://phpjs.org/functions/html_entity_decode:424
//mais ne fonctionne pas...
//texteOK = html_entity_decode(texte, ENT_QUOTES, 'UTF-8');
$(".informations").html('<p>'+texte+'</p>');
}
</script>
Voilà, je suis bien bloqué.
Je suis pas très à l'aise avec jQuery. J'ai de bonnes bases en Javascript, mais bon.
Merci de l'aide :)
++
Z