[Ajax] probleme de charset
14 messages • Page 1 sur 1
[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?
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
-

MarvinLeRouge - WRInaute impliqué

- Messages: 450
- Inscription: Mer Sep 01, 2004 21:10
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.
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: Ven Aoû 27, 2004 11:18
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);
}
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: Ven Aoû 27, 2004 11:18
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 passionné

- Messages: 635
- Inscription: Lun Sep 19, 2005 23:10
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.
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: Ven Aoû 27, 2004 11:18
ç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...
[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: Ven Aoû 27, 2004 11:18
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.
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);
Modérateurs: WebRankInfo, e-kiwi, OTP, fandecine, Patrice A.
14 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Référencement et Web 2.0
- Google Web Toolkit, pour créer des applications en AJAX
- Yahoo Maps API
- Google rejoint le projet Open AJAX créé par IBM
- Fin de l'API Google Search SOAP
- Définition(s) du Web 2.0
- Google ferme l'API SOAP aux nouveaux développeurs
- Ajouter un moteur de recherche d'images sur son site
- Optimisation du référencement d'un site en AJAX
- Suggestions de requêtes dans Google News
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 0 invités


le forum