Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > Prototype & Script.aculo.us
Prototype & Script.aculo.us Forum d'entraide sur les frameworks Prototype et Script.aculo.us
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/06/2007, 16h21   #1
Invité régulier
 
Inscription : mars 2005
Messages : 36
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 36
Points : 6
Points : 6
Par défaut [Prototype] encodage UTF8 AJAX Updater et accent

bonjour,

je travail actuellement sur ajax et j'ai un problème avec l'encodage de mes accents dans ma base de donnée.
Je m'explique :
A l'initialisation de ma page A je charge un autre fichier B dans une div.
l'encodage pour ma page est fait de la façon suivante :
Code :
1
2
3
4
5
6
7
8
9
10
 
HTML>
<HEAD>
<TITLE>essai fongus</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<LINK REL="SHORTCUT ICON" HREF="<?=$config->baseURL?>netika.ico">
<SCRIPT LANGUAGE='Javascript' src='<?=$config->includeURL?>lib.js' ></SCRIPT>
<script LANGUAGE="Javascript" src="<?= $config->includeURL?>ajax/prototype.js"></script>
<script LANGUAGE="Javascript" src="<?= $config->includeURL?>ajax/rico.js"></script>
</head>
l'encodage pour ma page B se fait ainsi
Code :
1
2
 
header('Content-type: text/html; charset=ISO-8859-1');
j'utilise la fonction Ajax.Updater de prototype pour recharger ma page B dans ma div sans tout recharger à chaque fois. pour cela j'utilise cette fonction
Code :
1
2
3
4
5
6
7
8
9
10
11
 
function afficherModifierDansDiv(nomDiv,page,parametre){
	alert(parametre);
	var myAjax = new Ajax.Updater(nomDiv,page,{
								method: 'get',
								parameters: parametre,
								evalScripts: true
 
							});
 
}
Mon problème étant que lorsque que je valide un formulaire via la fonction du dessus couplé avec la fonction Form.serialize(); les informations transmisent à ma base de données sont mal encodé pour les accents par exemple. du style rué pour rué

Si vous avez une idée je suis à l'ecoute.
merci d'avance
fongus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2007, 21h42   #2
Membre à l'essai
 
Inscription : décembre 2006
Messages : 57
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 57
Points : 24
Points : 24
j'ai trouvé une solution, mais il est possible qu'il y ait plus simple.
Lors de l'insertion de mes $_GET ou $_POST dans la bdd, je les fais passer dans la fonction utf8_decode()
http://www.php.net/manual/fr/function.utf8-decode.php
qui va te permettre d'obtenir la forme iso
lOeil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2007, 09h27   #3
Invité régulier
 
Inscription : mars 2005
Messages : 36
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 36
Points : 6
Points : 6
salut,

oui j'y est déjà pensé, et je les mêmes utilisé mais ça n'a pas marché.
donc je suis toujours bloqué au même point.
fongus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2007, 12h00   #4
Membre à l'essai
 
Inscription : décembre 2006
Messages : 57
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 57
Points : 24
Points : 24
tu fais bien
Code :
$sql = 'INSERT INTO ... SET variable=\''.utf8_decode($_GET['variable']).'\' ...;
car ca a marché sur tous les sites que j'ai codé en ajax.
lOeil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2007, 12h16   #5
Invité régulier
 
Inscription : mars 2005
Messages : 36
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 36
Points : 6
Points : 6
re, voila,

j'ai trouvé une solution mais le problème étant que j'utilise une méthode un peu différente voila ce que je fais.

Code :
1
2
3
4
5
6
7
8
 
foreach($_GET as $key=>$value){
 
	   $value=utf8_decode($value);
	   $_GET[$key]=$value;
 
 
  }
Le probleme c'est que je n'utilise pas $_get['nomvar'] pour interprété mon résultat mais $nomvar directement. ce qui fait que le truc du dessus ne marche pas.
si t'as une idée ou quelqu'un je suis open
fongus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2007, 13h59   #6
Invité régulier
 
Inscription : mars 2005
Messages : 36
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 36
Points : 6
Points : 6
re,

en fait t'as solution est viable, mais disons que j'ai une quinzaine de page et dedans je ne sais combien de variables de formulaire donc, je cherche à automatisé cette transformation.
fongus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2007, 14h38   #7
Invité régulier
 
Inscription : mars 2005
Messages : 36
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 36
Points : 6
Points : 6
re,

donc c'est bon j'ai réussi en utilisant

${key}=$value;

voilou plus les gens.
fongus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2007, 14h22   #8
Invité régulier
 
Inscription : mars 2005
Messages : 36
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 36
Points : 6
Points : 6
une autre solution mais plus risqué est de changé tout les URIencode dans la librairie par des escape() et tout les URIDecode par des unescape() et et apres ca fonctionne tout aussi bien.
++
fongus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2007, 10h42   #9
Invité de passage
 
Inscription : mars 2006
Messages : 6
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 6
Points : 4
Points : 4
Bonjour,

J'ai le même problème mais malheureusement je suis en ASP donc je n'ai pas de fonction pour décoder l'UTF-8.

Je ne comprends pas pourquoi Prototype fait l'encodage directement en UTF-8, il devrait laisser le choix.

Quelqu'un a t'il une autre solution ?

Merci
DomZZZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2007, 16h33   #10
Membre éprouvé
 
Avatar de m-mas
 
Inscription : février 2003
Messages : 537
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 537
Points : 479
Points : 479
Bonjour,

j'ai le même problème ! c'est trés bizarre, j'ai utilisé utf8_decode() pour le critère de ma requête et utf8_encode() pour réafficher correctement le résultat !

il y a t il une explication à ce problème ?
__________________
MCP VB.NET (70-305) - (70-306) - (70-310)
m-mas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2008, 15h55   #11
Invité régulier
 
Inscription : mars 2005
Messages : 36
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 36
Points : 6
Points : 6
[RÉSOLU]

une modification peut être fait dans prototype.js mais à vos risque et péril,
modifier toutes les fonctions encodeURIComponent par des escape et tout les decodeURIcomponent par des unescape

++
fongus est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h37.


 
 
 
 
Partenaires

Hébergement Web