cs_maxos75
Messages postés22Date d'inscriptiondimanche 5 juin 2005StatutMembreDernière intervention19 juillet 2006
-
15 juin 2006 à 18:05
marysefat2000
Messages postés2Date d'inscriptionvendredi 9 mars 2007StatutMembreDernière intervention 6 mai 2009
-
6 mai 2009 à 20:14
Bonjour,
J'i toujours un problème en AJAX lors de la transmission de données avec des accents,quelqu'un a t-il une idée?
Evangun
Messages postés1980Date d'inscriptiondimanche 20 février 2005StatutMembreDernière intervention24 septembre 20124 20 juil. 2006 à 02:42
Salut, l'utf-8 c'est assez chiant vu qu'il faut toujours encoder les caractères...
Bon mais c'était pour dire à ceux qui cherchent que spécifier la norme de caractères sur la page APPELEE par Ajax règle le problème des accents, même si on n'est pas en utf8.
cs_maxos75
Messages postés22Date d'inscriptiondimanche 5 juin 2005StatutMembreDernière intervention19 juillet 2006 16 juin 2006 à 09:35
salut,
Je ne comprends pas tres bien,
Toutes les pages s'affichent correctement alors qu'elles sont codées en iso-8859-1.
J'ai juste un problème lors de l'appel AJAX dont le code est le suivant :
<hr />
var xhr = null;
function getXhr()
{
if(window.XMLHttpRequest) // Firefox et autres
xhr = new XMLHttpRequest();
else if(window.ActiveXObject){ // Internet Explorer
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
}function rappatrie_messages()
{
getXhr()
// On défini ce qu'on va faire quand on aura la réponse
xhr.onreadystatechange = function(){
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
if (xhr.readyState==1)
{document.getElementById("Layer1").style.display='';
document.getElementById("bouton_recherche").disabled='disabled';}
if (xhr.readyState==2)
{document.getElementById("Layer1").style.display='';}
if (xhr.readyState==3)
{document.getElementById("Layer1").style.display='';} if(xhr.readyState 4 && xhr.status 200){
document.getElementById("Layer1").style.display='none';
document.getElementById("ligne_reponses").innerHTML=xhr.responseText;
document.getElementById("bouton_recherche").disabled='';
}
}
xhr.open("POST","maincourante_ajax.asp",true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; Charset=iso-8859-1");
var data="ref=&debut="+document.getElementById("debut").value+"&fin="+document.getElementById("fin").value+"&mot_cle="+document.getElementById("mot_cle").value+"&table=maincourante_maintenance_tbl";
xhr.send(data);
paramatre=null;
}
<hr />La page que j'appelle a le code suivant :
<!-- #include file="connexion.txt" -->
<!-- #include file="fonctions.txt" -->
<!-- #include virtual="/adovbs.inc" -->
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<%
response.write("\")
If Isdate(request.form(\"debut\"))=false or Isdate(request.form(\"fin\"))=False Then
response.write(\"----
Vérifiez la cohérence des dates de recherche, \")
else
'création de la requête
sql_main=\"SELECT * FROM \"&request.form(\"table\")&\", personnel_tbl, service_tbl WHERE id_auteur=[id personnel] AND [is service]=[service] AND reponse=False\"
If request.Form(\"mot_cle\") <> \"\" Then
mot_cle=replace(request.Form(\"mot_cle\"),\" \",\"%\")
sql_main=sql_main & \" AND message LIKE '%\" & mot_cle & \"%' \"
End if
If request.Form(\"debut\")<>\"\" and request.Form(\"fin\")<>\"\" then
sql_main = sql_main & \" AND Date Between #\" & conv_date(request.Form(\"debut\")) & \"# AND #\" & Conv_Date(request.Form(\"fin\")) & \"# \"
End if
'Fin de la requête.
sql_main=sql_main & \" Order By VIM, Date DESC\"
SET enr_main = connexion.Execute(sql_main)
If enr_main.eof Then
Response.write(\"----
Aucune entrée recensée pour les critères renseignés, \")
else
i=0
Response.write(\"
xx entrées recensées
\")
Do while enr_main.EOF =false
Response.write(\"----
\")
Response.write(\"")
Response.write("<table width= '100%' border='0' align='left' cellpadding='2' cellspacing='0'>")
Response.write("----
")
Response.write(", \")
response.write(\"
\"&enr_main(\"date\")&\"
\")
response.write(\"
\"&replace(replace(enr_main(\"NOM\"),\"é\",\"é\"),\"è\",\"é\")&\", \"&replace(replace(enr_main(\"Prénom\"),\"é\",\"é\"),\"è\",\"é\")&\" \")
If enr_main(\"VIM\") =true Then
response.write(\"
\")
End If
Response.write(\"</td>\")
Response.write(\"")
Response.write("<table width='100%' border='0' cellspacing='0' cellpadding='1'>")
Response.write("----
")
Response.write(", \")
response.write(\"
\")
If enr_main(\"service\")=4 then
Response.write(\"\")
End if
Response.write(replace(replace(replace(enr_main(\"message\"),chr(13),\"
\"),\"é\", \"é\"),\"è\",\"è\"))
If enr_main(\"service\")=4 then
Response.write(\"\")
End if
Response.write(\"
\")
Response.write(\"</td>\")
Response.write(\"\")
sql_reponses=\"SELECT * FROM \"&request.form(\"table\")&\", personnel_tbl, service_tbl WHERE id_auteur=[id personnel] AND [is service]=[service] AND reponse = TRUE AND id_message LIKE '\" & enr_main(\"id\") & \"' order by date\"
SET enr_reponses = connexion.Execute(sql_reponses)
If enr_reponses.EOF=False then
Do while not enr_reponses.EOF
Response.write(\"----
\")
Response.write(\"")
response.write("
")
If enr_reponses("service")=4 then
Response.write("")
End if
'teste si le groupe est autorisé à éditer le message
If enr_reponses("id_auteur")=session("id_personnel") or session("groupe")="Administratif" then
Response.write("Réponse de "&replace(replace(enr_reponses("NOM"),"é","é"),"è","é")&", "&replace(replace(enr_reponses("Prénom"),"é","é"),"è","é")&" :
")
If enr_reponses("id_auteur")=session("id_personnel") or session("groupe")="Administratif" then
Response.write("")
End if
Response.write(replace(replace(replace(enr_reponses("message"),chr(13),"
"),"é", "é"),"è","è"))
If enr_reponses("id_auteur")=session("id_personnel") or session("groupe")="Administratif" then
Response.write("")
End if
else
Response.write("Réponse de "&enr_reponses("NOM")&", "&enr_reponses("Prénom")&" :
")
Response.write(replace(replace(replace(enr_reponses("message"),chr(13),"
"),"é", "é"),"è","è"))
End if
If enr_reponses("service")=4 then
Response.write("")
End if
Response.write(", \")
enr_reponses.Movenext
LOOP
else
'insérer ici le message si vous voulez faire apparaitre qu'il n'y a pas de réponse
End if
enr_reponses.close
Set enr_reponses=Nothing
Response.write(\"----
")
Response.write("
")
If enr_main("id_auteur")=session("id_personnel") or session("groupe")="Administratif" then
Response.write(" ")
End If
Response.write("
")
Response.write("
</td></tr></table>")
Response.write("</td>")
Response.write("</tr>")
enr_main.MoveNext
i=i+1
LOOP
'Fin de la repetition
End If
SET enr_main = Nothing
'Fin de la requête.
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 16 juin 2006 à 19:22
Salut,
l'ajax est un xml (sinon, c'est une xmlhttprequest simple...) bref, vous confondez trop souvent ces deux choses...
et un xml est toujours en utf -8 (sinon, il n'est pas conforme normalement)
bref, souvent, une requette xmlhttp est considérée comme une requette utf-8
In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy
JeePI196
Messages postés3Date d'inscriptionmercredi 21 février 2007StatutMembreDernière intervention30 mai 20071 30 mai 2007 à 17:49
J'espere que ton probleme est réglé depuis... mais moi aussi j'ai vécu la même chose. J'ai perdu une matinée pour trouver une solution bien simple pourtant!
Lorsque tu envoies tes données en post assure toi d'utiliser la fonction "escape( )" pour transformer les caractères spéciaux.
bpweb66
Messages postés2Date d'inscriptionmardi 1 janvier 2008StatutMembreDernière intervention 1 janvier 2008 1 janv. 2008 à 18:30
Bonjour !
Je remonte un peu le sujet car je viens de me lancer dans l'AJAX, et j'ai ce même soucis avec les accents
La solution de evangun est bien (le header avec le charset en ISO-8859-15), mais la question que je me pose maintenant c'est que j'utilise la réponse XML du traitement AJAX.
Donc j'ai déjà un header('Content-Type: text/xml');
Est-il possible de définir plusieurs fois la même en-tête, ou bien ... je ne sais quelle autre solution...