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

HTML Discussion :

Caractères spéciaux Javascript non valides [W3C]


Sujet :

HTML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 176
    Par défaut Caractères spéciaux Javascript non valides
    Bonjour à tous,

    Je cherche à valider les pages de mon site en 4.01 Transitionnel.

    Je bloque sur un problème de caractères spéciaux.

    J'ai un tableau PHP qui récupère des variables dans une base SQL. Dans la base et donc dans le tableau PHP, elles sont bien codées. C'est à dire é pour é, &egave, pour è, et ainsi de suite...

    Je dois ensuite transférer ce tableau en tableau Javascript.
    J'utilise une petite fonction qui réalise la conversion.

    Le problème est le suivant :

    Si je laisse les caractères codés dans le tableau Javascript, alors les caractères ne sont pas interprétés dans le Javascript (en l’occurrence ici une carte Google).
    Si je décode les caractères avant de les mettre dans le tabeau JS, alors lors de la copie dans le tableau JS, il y a les caractères spéciaux qui s'affichent (é, è, ...) et le W3C me dit que ce n'est pas valide !

    Quelle est la solution ? Y a t il un codage qui est interprété par le JS ? ou y a t il une fonction JS qui code dans le Javascript les caractères spéciaux ou qui les interprètent correctement ?

    Merci d'avance.

    P.

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Le code JavaScript n'a aucune raison d'être parsé par le validateur. C'est pour ça qu'il est généralement placé entre commentaires HTML ou balises CDATA. Le mieux étant bien entendu de le mettre dans un fichier externe
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 176
    Par défaut
    Merci Bovino,

    Peux-tu m'en dire plus sur ce que tu appelles le fichier Externe ?
    Parce que là en l'occurrence je fais la ligne de code suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var tab= <?php echo $js;?>
    Et ça je ne peux pas le mettre dans un fichier externe ?
    Sauf à créer une fonction ?

    Merci pour tes conseils.

    Sinon je vais essayer de le mettre en commentaire.

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Tu peux tout à fait créer en PHP un fichier JavaScript
    test.php
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    header('Content-type: text/javascript');
    echo 'var toto = \'tata\'';
    ?>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript" src="test.php"></script>
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 176
    Par défaut
    Désolé de revenir à la charge mais je ne m'en sors pas.
    En fait le problème est que je dois écrire cette fameuse ligne qui dit qu'une variable JS doit être égale à une variable PHP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var tab = <?php echo $js;?>
    Si je mets la ligne entre commentaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <!--var tab =<?php echo $js; ?>;//-->
    Elle n'est plus interprétée.

    J'ai essayé ensuite de créer un fichier externe comme tu le dis, mais de la même manière, j'ai écrit dans le fichier test.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    header('Content-type: text/javascript');
    echo 'var tab = "'.$js.'"';
    ?>
    Puis en mettant la ligne suivante juste après avoir défini ma variable $js
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript" src="test.php"></script>
    Mais cela fait planter mon JS.
    Il doit y avoir un bug qq part, mais là je ne vois pas !

    Merci de votre aide.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 176
    Par défaut
    En fait je viens de trouver une solution valide, en convertissant les données du tableau en faisant un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    html_entity_decode($table_latlong2[$i]['titre'], ENT_QUOTES, "UTF-8");
    Tout passe très correctement dans le validateur et dans le javascript.

    Bonne journée.

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

Discussions similaires

  1. ORA-12714: jeu de caractères national indiqué non valide
    Par farenheiit dans le forum Administration
    Réponses: 0
    Dernier message: 09/06/2009, 10h14
  2. SQL et GUID : Valeur de caractère non valide pour la ....
    Par jackfirst72 dans le forum Bases de données
    Réponses: 5
    Dernier message: 06/03/2007, 10h46
  3. [.net] Caractères spéciaux non reconnus
    Par akrodev dans le forum MFC
    Réponses: 3
    Dernier message: 04/05/2006, 22h08
  4. [DOM] Caractère XML non valide
    Par alliance dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 14/02/2006, 11h05
  5. [JDBC]Caractère non-valide
    Par calimero82 dans le forum JDBC
    Réponses: 2
    Dernier message: 16/02/2005, 14h22

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