[Ajax] probleme de charset
14 messages
• Page 1 sur 1
- death83
- WRInaute discret

- Messages: 90
- Inscription: 6 Jan 2006
[Ajax] probleme de charset
Salut a tous,
J'ai fait un truc tout bete en AJAX:
La fonction go est une fonction qui va communiquer avec la page php suivante:
grace a :
J'ai donc en temps rélle ce que je tape dans l'input qui apparait sur ma page.
Mais quand je fais des ' ou " il me rajoute un \ devant et les accent ne sont pas bien affiché. Comme si il avait changer le charset d'une page a l'autre.
Vous savez pourquoi?
J'ai fait un truc tout bete en AJAX:
- Code: Tout sélectionner
<input id="moteur" class="moyeninput2" type="text" name="motcle" onkeyup="go(document.getElementById(\'moteur\').value,\'afftab\',\'../AJAX/accueilmanga.php?motcle=\');">
La fonction go est une fonction qui va communiquer avec la page php suivante:
- Code: Tout sélectionner
<?php
include ('../BDD/connection.php');
$search=$_GET['motcle'];
echo $search;
?>
grace a :
- Code: Tout sélectionner
function go(envoi,idcible,page_ajax){
getXhr()
xhr.onreadystatechange = function(){
if(xhr.readyState == 4 && xhr.status == 200)
{
text_renv = xhr.responseText;
document.getElementById(idcible).innerHTML=text_renv;
}
}
xhr.open("GET",page_ajax+envoi,true);
xhr.send(null);
}
J'ai donc en temps rélle ce que je tape dans l'input qui apparait sur ma page.
Mais quand je fais des ' ou " il me rajoute un \ devant et les accent ne sont pas bien affiché. Comme si il avait changer le charset d'une page a l'autre.
Vous savez pourquoi?
-

MarvinLeRouge - WRInaute impliqué

- Messages: 525
- Inscription: 1 Sep 2004
Salut,
Regarde du côté de urldecode et urlencode, ça pourrait résourdre ton problème.
Regarde du côté de urldecode et urlencode, ça pourrait résourdre ton problème.
- death83
- WRInaute discret

- Messages: 90
- Inscription: 6 Jan 2006
Non ca ne peut pas etre ca car j'affiche du texte qui n'est pas passé par l'url. Et qui ne s'affiche pas correctement non plus.
par exemple si sur ma page que j'appelle je faire un echo ''Série";
ca va m'afficher dans la page qui appelle:
par exemple si sur ma page que j'appelle je faire un echo ''Série";
ca va m'afficher dans la page qui appelle:
S�ries
- lapincouch
- WRInaute discret

- Messages: 56
- Inscription: 27 Aoû 2004
L'AJAX envoie TOUJOURS les données encodées en UTF8!!!
Il faut décoder les données reçues à l'aide de la fonction utf8_decode.
Par exemple en PHP :
Il faut décoder les données reçues à l'aide de la fonction utf8_decode.
Par exemple en PHP :
- Code: Tout sélectionner
foreach($_POST as $key => $val){
$_POST[$key] = utf8_decode($val);
}
-

Phix - WRInaute occasionnel

- Messages: 420
- Inscription: 15 Juin 2004
Sinon, dans la page php, tu insères:
en début de code, comme ca tout est envoyé directement en iso 8859 et pas besoin de fonction utf8...
- Code: Tout sélectionner
header('Content-Type: text/html; charset=ISO-8859-1');
en début de code, comme ca tout est envoyé directement en iso 8859 et pas besoin de fonction utf8...
- lapincouch
- WRInaute discret

- Messages: 56
- Inscription: 27 Aoû 2004
Sinon, dans la page php, tu insères:
tu veux dire dans la page receptrice du formulaire?
ou celle qui contient le formulaire?
- Bourriquet
- WRInaute impliqué

- Messages: 637
- Inscription: 19 Sep 2005
Phix a écrit:Sinon, dans la page php, tu insères:
- Code: Tout sélectionner
header('Content-Type: text/html; charset=ISO-8859-1');
en début de code, comme ca tout est envoyé directement en iso 8859 et pas besoin de fonction utf8...
+1 : j'allais le dire. C'est ce que j'utilise systèmatiquement et ça a palier au problème.
-

Phix - WRInaute occasionnel

- Messages: 420
- Inscription: 15 Juin 2004
lapincouch a écrit:tu veux dire dans la page receptrice du formulaire?
ou celle qui contient le formulaire?
Celle qui est appellée en Ajax :
- Code: Tout sélectionner
<?php
include ('../BDD/connection.php');
$search=$_GET['motcle'];
echo $search;
?>
devient :
- Code: Tout sélectionner
<?php
header('Content-Type: text/html; charset=ISO-8859-1');
include ('../BDD/connection.php');
$search=$_GET['motcle'];
echo $search;
?>
- lapincouch
- WRInaute discret

- Messages: 56
- Inscription: 27 Aoû 2004
ça marche pas chez moi
par contre, j'utilise ce code javascript, cà vient peut-être de là?
merci bien pour toutes ces idées...
par contre, j'utilise ce code javascript, cà vient peut-être de là?
- Code: Tout sélectionner
function Request( url, action )
{
var obj = loadXMLObj() ;
//if ( obj == false ) { alert("AJAX ne peut pas être initialisé.\nL'administration est impossible."); return; }
obj.open("POST", url, false ) ;
/*
'this value is ignored, but the step is necessary
xmlRequest.setRequestHeader "Cookie", "any non-empty string here"
'set all cookies here
xmlRequest.setRequestHeader "Cookie", "cookie1=value1; cookie2=value2"
*/
obj.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=iso-8859-1');
//obj.setRequestHeader('Content-Type','text/plain');
//objHTTP.send("id=1&user="+txtUser.value+"&password="+txtPassword.value);
/*
obj.onreadystatechange=function()
{
if (xmlhttp.readyState==4)
{
if (xmlhttp.status==200) alert("URL Exists!")
else if (xmlhttp.status==404) alert("URL doesn't exist!")
else alert("Status is "+xmlhttp.status)
}
*/
action = "date=" + Date() + (action =="" ? "" : "&" + action) ;
obj.send( action );
data = obj.responseText ;
//alert(data);
return data ;
}
function loadXMLObj()
{
obj = false;
// branch for native XMLHttpRequest object
if (window.XMLHttpRequest) { try { obj = new XMLHttpRequest(); } catch(e) { obj = false; } }
// branch for IE/Windows ActiveX version
else if(window.ActiveXObject)
{
try { obj = new ActiveXObject("Msxml2.XMLHTTP");}
catch(e)
{
try { obj = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { obj = false; }
}
}
return obj ;
}
merci bien pour toutes ces idées...
- death83
- WRInaute discret

- Messages: 90
- Inscription: 6 Jan 2006
[quote="lapincouch"]ça marche pas chez moi
par contre, j'utilise ce code javascript, cà vient peut-être de là?
[/code]
Ca dépend tu utilise quel charset sur tes pages toi.
C'est sur que si tu n'utilise pas le même que moi ca ne marchera pas.
Tu es peut etre en utf8 non?
par contre, j'utilise ce code javascript, cà vient peut-être de là?
[/code]
Ca dépend tu utilise quel charset sur tes pages toi.
C'est sur que si tu n'utilise pas le même que moi ca ne marchera pas.
Tu es peut etre en utf8 non?
- lapincouch
- WRInaute discret

- Messages: 56
- Inscription: 27 Aoû 2004
non, en fait la page qui contient le formulaire est en iso,
par contre, la page appelée n'a pas de charset prédéfini car elle fait toujours une redirection.
par contre, la page appelée n'a pas de charset prédéfini car elle fait toujours une redirection.
- Jeff974
- Nouveau WRInaute

- Messages: 1
- Inscription: 21 Avr 2006
Salut,
j'ai trouvé une solution bien plus pratique que de rajouter un header dans chaque fichier.
Il suffit d'utiliser
Comme dans l'exemple suivant :
j'ai trouvé une solution bien plus pratique que de rajouter un header dans chaque fichier.
Il suffit d'utiliser
- Code: Tout sélectionner
overrideMimeType('text/html; charset=ISO-8859-15');
Comme dans l'exemple suivant :
- Code: Tout sélectionner
req.open("GET", url, true);
req.overrideMimeType('text/html; charset=ISO-8859-15');
req.send(null);
14 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Ajax/prototype.js, charset et IE
- différence entre charset=ks_c_5601-1987 et charset=euc-kr
- charset=iso-8859-1 ou charset=utf-8 ?
- DC to WP : problème de charset
- Problème charset
- probleme charset avec XMLHTTPREQUEST
- Probleme URLREWRITING et Ajax!
- Problème Ajax sous IE
- Problème Ajax et popup
- PHP / Ajax : Problème de formulaire
Consultez la description détaillée des produits ou services de Google suivants : Google Web Toolkit
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
