Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ JavaScript
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 09/04/2011, 10h17   #1
Invité de passage
 
Inscription : novembre 2004
Messages : 18
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 18
Points : 3
Points : 3
Par défaut UI Autocomplete, support des caractères accentués

Bonjour,

Je cherche depuis plusieurs jours sans résultats comment ajouter le support des accents à un simple champ input text via l'autocomplete Jquery UI.

L'exemple se trouve sur cette page : http://www.squash-contact.com/joueurs.php

L'autocomplete fonctionne bien si je tape des caractères sans accents par exemple "je" ou "JE" pour rechercher "Jérôme" mais comme le script JQuery envoi la requete via GET mes accents sont perdus si je tape "jé"...

Y a-t-il une solution simple ?

Merci d'avance
toine92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2011, 12h52   #2
Membre habitué
 
Homme
Inscription : septembre 2008
Messages : 161
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Congo-Kinshasa

Informations forums :
Inscription : septembre 2008
Messages : 161
Points : 139
Points : 139
Envoyer un message via Skype™ à tresorunikin
C'est quoi ta source ?
okay je vois (en affichant le code source de ta page): js/autocomplete/search.php...
songes à y mettre un
Code :
1
2
 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
eviter aussi des lignes du genre
Code :
		<script charset="utf-8">
pour finir, que fais ton accentMap
Code :
1
2
3
4
5
6
7
8
9
10
var accentMap = {
			"é": "e",
			"è": "e",
			"ë": "e",
			"ê": "e",
			"à": "a",
			"â": "a",
			"ô": "o",
			"ç": "c"
			};
?
tresorunikin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2011, 17h45   #3
Invité de passage
 
Inscription : novembre 2004
Messages : 18
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 18
Points : 3
Points : 3
Merci pour ton aide.

J'ai supprimer le charset sur la balise script, ça servait à rien de toute façon !


En fait, search.php ne fait que regarder en base de données les noms des joueurs qui lui sont passés dans la variable "term".

Par exemple pour un autocomplete sur "je" pour chercher "jérome" par exemple, la requête AJAX envoyé via JSON est :
http://www.squash-contact.com/js/aut...ch.php?term=je

Le soucis c'est quand je fais une recherche sur "jé" ou "ça" ou "jérôme" ou "prenom nom", bref si ma recherche contient des caractères spéciaux accents ou espace. L'URL supporte pas les accents ou les espaces et plante mon script.
Par exemple pour "jé" la requête AJAX envoyée via JSON est :
http://www.squash-contact.com/js/aut...p?term=j%C3%A9

En fait il faudrait surement que j'utilise une fonction du style urlencode coté JAvascript mais avec Jquery je ne vois pas comment faire... et ensuite urldecode dans search.php

Si tu as une piste, je suis preneur ! lol

Merci



Citation:
Envoyé par tresorunikin Voir le message
C'est quoi ta source ?
okay je vois (en affichant le code source de ta page): js/autocomplete/search.php...
songes à y mettre un
Code :
1
2
 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
eviter aussi des lignes du genre
Code :
		<script charset="utf-8">
pour finir, que fais ton accentMap
Code :
1
2
3
4
5
6
7
8
9
10
var accentMap = {
			"é": "e",
			"è": "e",
			"ë": "e",
			"ê": "e",
			"à": "a",
			"â": "a",
			"ô": "o",
			"ç": "c"
			};
?
toine92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2011, 20h33   #4
Membre habitué
 
Homme
Inscription : septembre 2008
Messages : 161
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Congo-Kinshasa

Informations forums :
Inscription : septembre 2008
Messages : 161
Points : 139
Points : 139
Envoyer un message via Skype™ à tresorunikin
un peu Bizarre; chez moi ça supporte bien les accents
le problème viendrait surement de Php dans ta page js/aucomplete/search.php dans la manière dont tu récupères le term et l'envoies à la base de données... Aussi il faudrait que ta base de données supporte les caractères accentués...
A toi de faire des tests sur ta database et pour tout prévenir, faire aussi du utf8_encode avec Php où c'est nécessaire
tresorunikin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2011, 10h17   #5
Invité de passage
 
Inscription : novembre 2004
Messages : 18
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 18
Points : 3
Points : 3
Ah bon ça fonctionne chez toi quand tu tapes "jé" l'autocomplete déroule les noms du genre "jérome..." ?

Moi sous FF et IE 8 rien du tout

J'ai vérifié ce que tu m'as dit et les accents sont bien supportés dans ma BDD

Tu as quelle config toi ?
toine92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2011, 12h13   #6
Rédacteur
 
Avatar de danielhagnoul
 
Homme Daniel Hagnoul
Étudiant perpétuel
Inscription : février 2009
Messages : 3 221
Détails du profil
Informations personnelles :
Nom : Homme Daniel Hagnoul
Âge : 61
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant perpétuel
Secteur : Enseignement

Informations forums :
Inscription : février 2009
Messages : 3 221
Points : 6 767
Points : 6 767
Bonjour

jQuery et jQuery UI travaillent mieux en UTF-8 !

Voir : Passez à l'UTF-8 sans manquer une étape par Josselin Willette
__________________

FAQ jQuery

Mon cahier d’exercices sur jQuery & Co

Si un message vous a aidé ou vous semble pertinent, votez pour lui !
danielhagnoul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/04/2011, 23h25   #7
Membre habitué
 
Homme
Inscription : septembre 2008
Messages : 161
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Congo-Kinshasa

Informations forums :
Inscription : septembre 2008
Messages : 161
Points : 139
Points : 139
Envoyer un message via Skype™ à tresorunikin
Citation:
Envoyé par toine92 Voir le message
Tu as quelle config toi ?
la toute récente!
J'ai également pris le soin de faire du
Code :
1
2
 
echo (utf8_encode($word));
pour chaque mot à ajouter à la liste
tresorunikin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 03h34   #8
Membre Expert
 
Inscription : septembre 2010
Messages : 1 242
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 242
Points : 1 564
Points : 1 564
Il faut suivre le lien de danielhagnoul et coder toutes ces pages en utf-8.

Soit dans le code php :
Code :
header('Content-type: text/html; charset=UTF-8');


dans le code html :
Code :
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


avant la requête à une table :
Code :
mysql_query("SET NAMES 'utf8'");
(ou mysql_set_charset si ta version mysql et php le supportent)
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 15h40   #9
Invité de passage
 
Inscription : novembre 2004
Messages : 18
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 18
Points : 3
Points : 3
Merci pour vos réponses à tous.

J'ai testé en migrant sous UTF-8 et le problème est toujours là !

Cela vient vraisemblablement de la non prise en compte des accents dans les URL des requêtes AJAX.

J'ai joint un dossier autocomplete avec toutes les sources pour tester.

Quelqu'un aurait-il une solution ?
Fichiers attachés
Type de fichier : zip autocomplete.zip (179,3 Ko, 11 affichages)
toine92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h38.


 
 
 
 
Partenaires

Hébergement Web