Encodage avec un GET

Eléphanteau du PHP | 11 Messages

20 avr. 2012, 16:58

Bonjour,

Je bloque depuis un petit moment sur un problème d'encodage lorsque j'effectue un GET en ajax et que j'affiche la variable envoyé en GET, pourtant tout le reste de ma page contient les bons accents et caractères. Voici le code:
<?php
if (isset($_GET['opt'])){ // je récupère la valeur selectionné
$element_select = $_GET['opt'];
echo "element_select :".$element_select;  // ça devrait m'affiché le mot Été mais ça m'affiche des caractères bizarre 
?>
[javascript]<script type="text/javascript" charset="utf-8">
/**
envoie des données en GET ou POST en utilisant les XmlHttpRequest
*/
function sendData(param, page, form)
{
if(document.all)
{
//Internet Explorer
var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
}//fin if
else
{
//Mozilla
var XhrObj = new XMLHttpRequest();
}//fin else

//définition de l'endroit d'affichage:
if(form == 0){
var content = document.getElementById("contenu");
content.innerHTML = '';
content = document.getElementById("contenu");
}
else{
var content = document.getElementById("ddl"); // ddl c'est ma liste déroulante

var valeur_de_option=content.options[content.selectedIndex].value;
//alert("Élément selectionné : "+valeur_de_option);
var nom_option=content.options[content.selectedIndex].text;
// alert(content.options[content.selectedIndex].text);

var url = "http://..............."+"<?php echo $_SERVER['PHP_SELF']; ?>"
var name_opt="opt";
var temp_url=insertParam(name_opt,nom_option,url);
document.location=temp_url;

}

XhrObj.open("POST", page);

//Ok pour la page cible
XhrObj.onreadystatechange = function()
{
if (XhrObj.readyState == 4 && XhrObj.status == 200)
content.innerHTML = XhrObj.responseText ;

}

XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
XhrObj.send(param);
}//fin fonction SendData

script>[/javascript]



Auriez vous des idées ?

Eléphanteau du PHP | 11 Messages

20 avr. 2012, 19:16

up please ! 8-|

ViPHP
AB
ViPHP | 5818 Messages

20 avr. 2012, 20:12

Il faut que toute ta page soit encodée en utf-8 (header php, meta html, fichier). Vérifies si tu as suivi toutes les étapes dans ce tuto

Eléphanteau du PHP | 11 Messages

20 avr. 2012, 21:43

J'ai re-vérifié et j'ai déjà tous en UTF-8 de ce qui est indiqué dans ton tuto :(

d'autres idées ? ou bien des témoignages de personnes qui ont déjà eu ce problème ou un truc similaire ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

20 avr. 2012, 21:50

est tu certain que le navigateur envoi la chose en utf-8 ?


@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 11 Messages

20 avr. 2012, 22:23

C'est surement ça, car tout le reste de la page n'a pas d'erreur de caractères, je verrai ça lundi, je vous tiens au courant et merci !

Eléphanteau du PHP | 11 Messages

25 avr. 2012, 14:19

J'ai contourné le problème, en ne mettant pas d'accent, car je récupère juste une variable que j'afficherai pas par la suite. Donc problème résolue ! thanx !
et sinon pour les autres, on peut toujours faire un POST au lieu d'un GET :)