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

JavaScript Discussion :

[AJAX] Accents et Xajax sous IE7


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 137
    Points : 70
    Points
    70
    Par défaut [AJAX] Accents et Xajax sous IE7
    Bonsoir les gens,
    je viens de voir une dizaine de posts et pas un ne semble correspondre à mon problème.
    J'utilise Xajax et je l'ai mis en place dans une application pour, entre autre, remplir automatiquement des champs en fonction d'un choix de liste déroulante.
    Ca c'est super facile !
    Par contre, si mes valeurs que je vais chercher dans ma base comporte des accents, ça plante lamentablement ... je vous le donne en mille .... que sur IE7 !!!!!!!
    Sur FF ça marche du feu de Dieu !
    Est-ce que ce problème est un bug connu entre Xajax (ou Ajax tout court) et IE7 ?

    D'autre part, du coup, j'ai essayé d'encoder les caractères avec htmlentities mais le problème c'est que :
    htmlentities("é");
    ça donne é
    et dans mes champs texte, ça m'écrit : &eacute !

    Je suis un peu à court d'idée et pourtant il faut absoluement que ça fonctionne sous IE7 car, biensûr, les clients sont sous IE7.

    Si une âme charitable pouvait m'aider ... ben ça m'aiderait
    Merci d'avance

  2. #2
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par Kahlyv Voir le message
    Si une âme charitable pouvait m'aider ... ben ça m'aiderait
    Merci d'avance
    Il faut bien vérifier que les headers HTTP que tu envoies correspondent bien à l'encodage que tu utilises.....
    A par tça, il n'y a pas spécialement de bug connu de IE 7. IE part du principe que tu utilises de l'UTF-8 et ne change d'avis que si les entetes sont correctement placés. Firefox est un peu plus compréhensif et veux bien prendre en compte les balises meta et peut faire un overridemimetype.

    Mais la meilleure façon est encore d'utiliser UTF-8 partout

  3. #3
    Membre régulier
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 137
    Points : 70
    Points
    70
    Par défaut
    ben en fait les headers http sont gérés par Xajax donc c'est une partie à laquelle je n'ai pas touché ... et si je peux éviter c'est pas plus mal
    sinon en en tete de page j'ai ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>Avis d'Expert</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    et j'ai essayé aussi en mettant
    et en changeant le codage des caractères dans mon IE7 et ça plante pareil
    j'ai même essayé en envoyant mes valeurs avec htmlentities($texte_avec_des_accents,ENT_QUOTES,'UTF-8'); j'ai le même plantage

    En fait, je reçois ça :
    Error : the XML response that was returned from the server is invalid
    et les CDATA sont foutus comme ça :
    <[!CDATA[micro-pieux béton]]> (par exemple)
    je te remercie pour la rapidité de ta réponse

  4. #4
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par Kahlyv Voir le message
    et en changeant le codage des caractères dans mon IE7 et ça plante pareil
    j'ai même essayé en envoyant mes valeurs avec htmlentities($texte_avec_des_accents,ENT_QUOTES,'UTF-8'); j'ai le même plantage
    Essaye avec utf8_encode, ca devrait te produire du vrai utf-8

  5. #5
    Membre régulier Avatar de SpecialCharacter
    Inscrit en
    Mai 2007
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 73
    Points : 72
    Points
    72
    Par défaut
    Si Xajax encode lui-même (URI_encode ?) alors tes données sont envoyées en utf8, il faut après décoder le tout dans ton fichier PHP avec utf8_decode();

  6. #6
    Membre régulier
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2007
    Messages : 137
    Points : 70
    Points
    70
    Par défaut
    Je viens de trouver le compromis :

    dans l'en-tête html :
    charset=iso-8859-1

    et dans mon xajax :
    des utf8_encode à chaque valeur où ça plante
    et
    $xajax->setCharEncoding('UTF-8');
    $xajax->decodeUTF8InputOn();

    Je viens de revérifier avec les autres fonctions (auxquelles je n'ai pas touché) et il semble y avoir des accents partout où il faut !
    Pour info, si je mets charset en utf-8, tous mes accents des textes et des boutons deviennent des carrés.
    C'est bizarre d'avoir ce mélange de utf-8 et iso-8859-1, et que tout fonctionne ... je vais continuer le dév comme ça et on verra.

    Merci à vous 2 pour vos conseils
    Bonne continuation.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] Appel Ajax sous IE7
    Par Devboard dans le forum jQuery
    Réponses: 4
    Dernier message: 02/07/2013, 18h54
  2. [AJAX] xmlhttprequest sous IE7
    Par arena94 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/12/2006, 21h09
  3. Réponses: 2
    Dernier message: 23/04/2006, 21h02
  4. Checkbox sous IE7
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 20/03/2006, 23h52
  5. AJAX + Innerhtml + img => Bug sous IE
    Par GregPeck dans le forum Langage
    Réponses: 12
    Dernier message: 07/02/2006, 17h43

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