amateurjava
Messages postés88Date d'inscriptionvendredi 8 octobre 2004StatutMembreDernière intervention12 octobre 2009
-
31 déc. 2007 à 01:54
amateurjava
Messages postés88Date d'inscriptionvendredi 8 octobre 2004StatutMembreDernière intervention12 octobre 2009
-
31 déc. 2007 à 12:45
Ayant fait le tour de nombreux post, je n'arrive toujours pas a trouver une reponse :
J'ai une page PHP avec un div dans laquelle il y a un include page.php en iso.
J'ai une fonction ajax qui sert à recharger page.php :
div étant le nom du div et requete etant page.php
function menu(div,requete){
var xhr_object = null;
if(window.XMLHttpRequest) // Firefox
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // Internet Explorer
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}
xhr_object.open("POST", requete, true);
xhr_object.onreadystatechange = function() {
if(xhr_object.readyState == 4) {
le probléme c'est que au lancement de page.php => tout est ok au niveau des caractères
mais aprés la requete, page.php présente des caractères en utf8.
J'ai essayé utf8_decode() utf8_encode().... et rien ne fonctionne car si j'encode les champs de page.php => ils seront en utf8 donc ilisibles à la première ouverture de page.
Et la foncton setRequestHeader ne re encode pas la page en iso aprés la script ajax.
amateurjava
Messages postés88Date d'inscriptionvendredi 8 octobre 2004StatutMembreDernière intervention12 octobre 2009 31 déc. 2007 à 12:45
J'ai trouvé LA SOLUTION
ma fonction d'appel du script est menu(div,requete)
j'ai modifié la fonction ajax :
function menu(div,requete){
newrequete=requete+'?reload=1';
var xhr_object = null;
if(window.XMLHttpRequest) // Firefox
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // Internet Explorer
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}
xhr_object.open("GET", newrequete, true);
xhr_object.onreadystatechange = function() {
if(xhr_object.readyState == 4) {
document.getElementById(div).innerHTML = xhr_object.responseText;
}
}
xhr_object.send(null);
}
dans page.php :
au debut :
ob_start();
à la fin :
$buffer=ob_get_clean();
if (isset($_GET["reload"])){$buffer = utf8_encode($buffer); }
echo $buffer;
comme ça :
si c'est l'affichage initial => pas de probleme de caractere
si c'est un reload de la page => on encode