Forum de discussion
Forum « Programmation Javascript » (archives)
probleme de charset XmlHttpRequest
Envoyé: 4 avril 2006, 11h06 par dessinatork
Je créer une messagerie instantanée pour un client. J'utilise le concept AJAX pour l'implémenter. Mais je tombe sur un probleme dans le passage des variables entre script je ne retrouve pas le meme jeux de characteres (dés qu'il y a par exemple des accents)....
Ma base de donnée est access. (au passage quelqu'un serai me dire qu'elle est le charset utilisé par access?)
Je travail en coldfusion (j'enchaine;) J'ai 3 script à vous montrer : - mon formulaire - mon fichier javascript qui envoi l'objet XMLHTTPRequest - et un fichier d'action qui doit mettre à jour une table.
Je commence dans mon application.cfm (fichier toujours appelé en coldfusion) je déclare ceci :
<CFHEADER name="Content-Type" value="text/html; charset=utf-8"> <--- Donc je suis en utf-8 --->
Voici mon formulaire qui appellera la fonction javascript enregistreMessage(form,path) :
<form onsubmit="return false;" action="" method="post" name="form_message" >
<TABLE>
<tr>
<td>Message : </td>
<td>
<textarea name="message_a_envoyer" cols="34" rows="10"></textarea>
</td>
<input type="button" onclick="enregistreMessage(this.form,'#HttpPathRoot#');" value="Envoyer" name="btn_ajouter_record">
</tr>
</table>
</form>
Voici le fichier javascript avec la définition de la fonction enregistreMessage() :
function enregistreMessage(form,HttpPathRoot){
var message_a_envoyer = form["message_a_envoyer"].value; // je recupere mon textarea
var content=document.getElementById("reponse_message"); // sa c'est la div ou je veux ma réponse
var xhr_object=null;
//Firefox ou IE
if(window.XMLHttpRequest) xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else{ alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");return;}
//j'ouvre ma page de traitement du message (en post et en mode asynchrone)
xhr_object.open("POST", HttpPathRoot+"message_action.cfm", true);
//(j'attend la réponse)
xhr_object.onreadystatechange = function() {
if (xhr_object.readyState == 4) {
content.innerHTML = xhr_object.responseText;
}}
xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
// ca je ne comprends pas trop ce que ca veut dire et surtout dans quel charset ca envoie mes données : application/x-www-form-urlencoded
alert(message_a_envoyer); // la par exemple si mon textarea valait évaluation j'ai message_a_envoyer = "évaluation"
var message_a_envoyer = escape(message_a_envoyer); // que j'echape ou pas le message cela ne change pas grand chose....
alert(message_a_envoyer); // la j'ai message_a_envoyer = %E9valuation
var data = "message_a_envoyer="+message_a_envoyer";
xhr_object.send(data);
}
Et voici mon fichier d'action ou je n'arrive pas à récuperer le "évaluation" que j'ai écrit :
<cfparam name="form.message_a_envoyer" default="">
<cfoutput>#form.message_a_envoyer#</cfoutput> -----> ET LA CA M'AFFICHE un truc comme ca '�valuation'
J'espere avoir exposé ce petit probleme correctement et donc si quelqu'un à une piste qu'il n'hésite pas à me répondre
Merci d'avance .K
Réponses
|