Version complète: sur le forum Webmaster Hub : XMLHttpRequest, POST et ISO-8859-1
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > Scripts et utilitaires
enroc
Bonjour,

voilà, j'utilise le fameux XMLHttpRequest, et c'est super ! Mais ... j'ai des problèmes d'encodage de caractère huh.gif
Voici les 2 cas de figures que j'ai :
en utilisant XMLHttpRequest pour poster le formulaire
* envoi le contenu des champs en utf8
* récupère (responseText) de l'utf8 (je crois) alors que le contenu est de l'iso-8859 (et le dit dans l'entête)
en utilisant le formulaire sans javascript: tout ce passe bien en iso-8859-1

Donc :
1. Il faut que je détecte si le formulaire est posté via javascript ou non, pour faire un utf8_decode(), ce que j'aimerai éviter.
2. je ne sais pas comment faire pour afficher correctement le responseText.

d'où :
1. Puis-je poster en javascript en iso-8859-1 ? Comment ?
2. Pourquoi ai-je des problèmes d'affichage en récupérant responseText, qui est de l'iso-8859, en l'affichant ?

r_question6161.gif

Voilà, si vous avez compris et que vous avez des idées ... rolleyes.gif

Voici le javascript utilisé :
CODE
function saveFile()
{
    request = new XMLHttpRequest();
    request.open("POST", location.pathname);
    request.onload = printResult;

    /* Envoi de l'utf8 ? */
    request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    var _fileContent = (document.getElementById('fileContent').value);
    var _mtime = document.getElementById('mtime').value;
    var _action = "editFile";
    request.send("ajax=true&fileContent="+_fileContent+"&mtime="+_mtime+"&action="+_action);
}
function printResult()
{
    if(document.getElementById("log")){
 document.getElementById("log").parentNode.removeChild(document.getElementById("log").parentNode);
    }
    var _result = document.createElement("div");

    /* reçoit de l'utf8 ? */
    _result.innerHTML = request.responseText;
    document.body.appendChild(_result);
    //document.body.innerHTML = request.responseText;
}
enroc
Hop, la réponse était dans la question (qui était : pourquoi le fichier qui récupère le formulaire (action="toto.php") ne récupère pas tout simplement de l'iso-8859-1 quand le formulaire est posté en javascript)
CITATION(enroc @ lundi 20 juin 2005, 12h10)
CODE
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

*


En effet c'est posté en x-www-form-urlencoded, il faut donc décoder !
Faut bien tout lire avant de poser une question :-D
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.