IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

UI Autocomplete, support des caractères accentués


Sujet :

jQuery

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 19
    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

  2. #2
    Membre très actif
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations forums :
    Inscription : Septembre 2008
    Messages : 168
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    eviter aussi des lignes du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    		<script charset="utf-8">
    pour finir, que fais ton accentMap
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var accentMap = {
    			"é": "e",
    			"è": "e",
    			"ë": "e",
    			"ê": "e",
    			"à": "a",
    			"â": "a",
    			"ô": "o",
    			"ç": "c"
    			};
    ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 19
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    eviter aussi des lignes du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    		<script charset="utf-8">
    pour finir, que fais ton accentMap
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var accentMap = {
    			"é": "e",
    			"è": "e",
    			"ë": "e",
    			"ê": "e",
    			"à": "a",
    			"â": "a",
    			"ô": "o",
    			"ç": "c"
    			};
    ?

  4. #4
    Membre très actif
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations forums :
    Inscription : Septembre 2008
    Messages : 168
    Par défaut
    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

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 19
    Par défaut
    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 ?

  6. #6
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

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

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonjour

    jQuery et jQuery UI travaillent mieux en UTF-8 !

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

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  7. #7
    Membre très actif
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations forums :
    Inscription : Septembre 2008
    Messages : 168
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo (utf8_encode($word));
    pour chaque mot à ajouter à la liste

  8. #8
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Il faut suivre le lien de danielhagnoul et coder toutes ces pages en utf-8.

    Soit dans le code php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('Content-type: text/html; charset=UTF-8');


    dans le code html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


    avant la requête à une table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("SET NAMES 'utf8'");
    (ou mysql_set_charset si ta version mysql et php le supportent)

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 19
    Par défaut
    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 Fichiers attachés

Discussions similaires

  1. [Upload] Nom de fichier avec un/des caractères accentués ?
    Par Christophe Charron dans le forum Langage
    Réponses: 11
    Dernier message: 09/06/2006, 21h46
  2. Problème d'affichage des caractères accentués
    Par ostaquet dans le forum JBuilder
    Réponses: 1
    Dernier message: 10/03/2005, 06h58
  3. [FLASH MX2004] Pb sur des caractères accentués.
    Par sandrineLL dans le forum Flash
    Réponses: 3
    Dernier message: 05/08/2004, 14h18
  4. Chaînes avec des caractères accentués dans Interbase
    Par Invité dans le forum Bases de données
    Réponses: 2
    Dernier message: 04/03/2004, 22h39
  5. insérer des caractères accentués INFORMIX/JDBC
    Par donde dans le forum Informix
    Réponses: 2
    Dernier message: 19/11/2002, 20h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo