Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > HTML / DHTML / XHTML
HTML / DHTML / XHTML Forum sur la programmation HTML / DHTML/ XHTML et la validation W3C. Cours (X)HTML, FAQ (X)HTML
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 19/08/2011, 16h10   #1
Membre à l'essai
 
Inscription : décembre 2006
Messages : 169
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 169
Points : 21
Points : 21
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.
Pierrick81 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2011, 16h19   #2
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 797
Points : 35 797
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 !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, 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
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2011, 17h39   #3
Membre à l'essai
 
Inscription : décembre 2006
Messages : 169
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 169
Points : 21
Points : 21
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 :
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.
Pierrick81 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/08/2011, 18h29   #4
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 797
Points : 35 797
Tu peux tout à fait créer en PHP un fichier JavaScript
test.php
Code php :
1
2
3
4
<?php
header('Content-type: text/javascript');
echo 'var toto = \'tata\'';
?>
Code :
<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 !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, 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
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/08/2011, 10h12   #5
Membre à l'essai
 
Inscription : décembre 2006
Messages : 169
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 169
Points : 21
Points : 21
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 :
var tab = <?php echo $js;?>
Si je mets la ligne entre commentaire :
Code :
<!--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 :
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 :
<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.
Pierrick81 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/08/2011, 11h05   #6
Membre à l'essai
 
Inscription : décembre 2006
Messages : 169
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 169
Points : 21
Points : 21
En fait je viens de trouver une solution valide, en convertissant les données du tableau en faisant un
Code :
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.
Pierrick81 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 11h27.


 
 
 
 
Partenaires

Hébergement Web