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 :

JSon et caractères spéciaux


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 31
    Par défaut JSon et caractères spéciaux
    Bonjour c'est encore moi

    j'ai une application qui en fonction de l'image sur laquelle on clic nous retourne l'image en grand avec diverses informations.

    Mon problème est que lorsque ces informations contienne un caractère accentué il m'indique une valeur null.
    c'est informations provienne d'une base de données et tout est encoré en UTF8 et mes pages en ISO-8859-1.

    Merci d'avance

  2. #2
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Salut,

    La description de ton souci est un peu courte.

    Ta page est encodée en ISO-8859-1, ta base en UTF-8. Les données issues de ta base ont elles été codées en iso-8859-1 pour être insérées dans ta page ? Ou ta base le fait peut-être automatiquement ?

    En bref, quel est le lien (source HTML) qui apparait vers ta grande image ?

    ERE

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 313
    Par défaut
    valeur null ?

    Un peu plus de précision aussi pour 'null' :
    La chaîne de caractère est null ?
    Le caractère à l'intérieur de la chaîne est null ?
    A partir de quel moment ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 31
    Par défaut
    je vous place des bou de code pour mieux comprendre et je m'explique plus en détail en dessous

    code de la page en question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    <script language="javascript">
    	var objJsonJS=<?php  echo $arrayjson; ?>
     
     
    	function ChangeImage(i) {
    		var image = objJsonJS[i]
    		var url = "upload/"+image['nomFichier']                  		    		
     
     
    	var chemin = '<img src="'+url+'" WIDTH="550px"/>';
     
        with (document.getElementById('gallery')) {
            innerHTML = chemin;
        }
     
        with (document.getElementById('infoImage')) {
     
    		var texte = image['nom']+"<br /><br />"+image['description']
            innerHTML = texte;
        }
    							}
     
     
    </script> 
     
    </div>
    <div id='infoImage'>
     
     
    </div>
     
     
    <div id='miniImages'>			
     
    <?php 
    if(isset($_GET['page']) )
    {
    		$i = $_GET['page'];
    }
    else
    {
         $i= 0;  
    }
    $j = 0;
    while ($j <= $nb && $i <= $total-1 ){
    		echo "<img id='img' onClick=\"ChangeImage(".$i.")\" src='upload/".$images[$i]['nomFichier']."' WIDTH=50px  />&nbsp;";
    $j++;
    $i++;
    }
    en-tête des pages :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
           <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    j'espere en avoir mis suffisament.

    pour la valeur nul(le innerHTML affiche nul à l'écran) elle apparait dans le javascript (d'après mes recherches c'est le Json qui en est la cause) car si je fais un echo des valeurs dans le php elles s'affichent normalement avec accent et tout ce qui va avec.

    Je passerais régulièrement pour répondre à toutes questions éventuelle.

    merci d'avance

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 313
    Par défaut
    La page générée serait plus parlante. PHP n'est pas ce qu'il y a de plus à propos avec javascript (Les tags PHP devraient être rejeté sur ce forum ).

    C'est par là qu'il faut chercher :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var objJsonJS=<?php  echo $arrayjson; ?>
    Dans ton code PHP, dirige aussi ton $arrayjson vers un fichier système pour consulter son contenu.
    Donc, soit ton codage PHP>JSON, soit ton extraction/transcodage SQL>PHP

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 31
    Par défaut
    pour le Json je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $arrayjson=json_encode($images);
    juste avant (dans du code php)

    si je comprend bien tu voudrais que je mette des screens de l'application ?

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 313
    Par défaut
    Citation Envoyé par zeroara Voir le message
    si je comprend bien tu voudrais que je mette des screens de l'application ?
    "Afficher source" de ta page sous le navigateur, et un copier/coller de la partie générée.

    L'environnement naturelle (à l'origine) d'exécution de javascript, c'est HTML*.

    * Sauf exceptions

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 31
    Par défaut
    ah ok je savais pas. j'apprendrais encore quelque chose aujourd'hui merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
       <head> 
           <title>Patrick Clouet</title>
           <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
           <link rel="stylesheet" media="screen" type="text/css" href="style.css" />
       </head>
     
       <body>
    <div id="en_tete">
       <!-- Texte du haut de page -->
     
    </div>
     
    <div id="menu">
       <div class="element_menu"> <!-- Cadre correspondant à un sous-menu -->
           <a href='accueil.php'>Accueil</a><br /><br />
           <a href='accueil.php'>News</a><br /><br />
           <a href='accueil.php'>Galerie 1</a><br /><br />
           <a href='galerie2.php'>Galerie 2</a><br /><br />
     
           <a href='accueil.php'>Portraits</a><br /><br />
           <a href='accueil.php'>Blog</a><br /><br />
           <a href='accueil.php'>Bio</a><br /><br />
           <a href='accueil.php'>Contact</a>
       </div>
    </div> 
    <div id="corps">
     
    <div id='gallery'>
     
     
    <script language="javascript">
    	var objJsonJS=[{"nom":"Amandes","description":"Recherche Personnelle","nomFichier":"amandes.jpg","dateUpload":"13\/12\/2009"},{"nom":"Figues","description":"Recherche Personnelle","nomFichier":"figues.jpg","dateUpload":"13\/12\/2009"},{"nom":"Huile d'olives","description":"Illustration d'ambiance. Client : Sodebo","nomFichier":"huileDolives.jpg","dateUpload":"13\/12\/2009"},{"nom":"Antilles","description":"Recherche Personnelle","nomFichier":"antilles.jpg","dateUpload":"13\/12\/2009"},{"nom":"Maroc","description":"Recherche Personnelle","nomFichier":"maroc.jpg","dateUpload":"13\/12\/2009"},{"nom":"Venise","description":"Recherche Personnelle","nomFichier":"venise.jpg","dateUpload":"13\/12\/2009"},{"nom":"Penestin","description":"Recherche Personnelle","nomFichier":"penestin.jpg","dateUpload":"13\/12\/2009"},{"nom":"Paysage de Provence","description":"Illustration d'ambiance. Marque Distributeur","nomFichier":"paysageDeProvence.jpg","dateUpload":"13\/12\/2009"},{"nom":"Fruits Rouges","description":"Illustration d'ambiance. Marque Distributeur","nomFichier":"fruitsRouges.jpg","dateUpload":"13\/12\/2009"},{"nom":null,"description":"Illustration pour pack Lobodis. Agence : DDB Nouveau Monde","nomFichier":"cafe.jpg","dateUpload":"13\/12\/2009"},{"nom":"Oie","description":"Saveurs du terroir pour pack. Agence : Euro RSCG","nomFichier":"oie.jpg","dateUpload":"13\/12\/2009"},{"nom":"Produits Regionaux","description":null,"nomFichier":"produitsRegionaux.jpg","dateUpload":"13\/12\/2009"},{"nom":"Produits Regionaux 2","description":null,"nomFichier":"produitsRegionaux2.jpg","dateUpload":"13\/12\/2009"},{"nom":"Saveurs Italiennes","description":"Saveurs Italiennes marque distributeur. Agence : Unicom","nomFichier":"saveursItaliennes.jpg","dateUpload":"13\/12\/2009"}]	
     
    	function ChangeImage(i) {
    		var image = objJsonJS[i]
    		var url = "upload/"+image['nomFichier']                  		    		
     
     
    	var chemin = '<img src="'+url+'" WIDTH="550px"/>';
     
        with (document.getElementById('gallery')) {
            innerHTML = chemin;
        }
     
        with (document.getElementById('infoImage')) {
     
    		var texte = image['nom']+"<br /><br />"+image['description']
            innerHTML = texte;
        }
    							}
     
     
    </script> 
     
    </div>
    <div id='infoImage'>
     
     
    </div>
     
     
    <div id='miniImages'>			
     
    <img id='img' onClick="ChangeImage(10)" src='upload/oie.jpg' WIDTH=50px  />&nbsp;<img id='img' onClick="ChangeImage(11)" src='upload/produitsRegionaux.jpg' WIDTH=50px  />&nbsp;<img id='img' onClick="ChangeImage(12)" src='upload/produitsRegionaux2.jpg' WIDTH=50px  />&nbsp;<img id='img' onClick="ChangeImage(13)" src='upload/saveursItaliennes.jpg' WIDTH=50px  />&nbsp;<br /><a align='left' href='galerie2.php?page=4'>page Précédente </a>&nbsp;&nbsp;&nbsp;&nbsp;<a align='right' href='galerie2.php?page=14'>page Suivante </a></div>
     
    </div>

  9. #9
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 313
    Par défaut
    Je crois qu'il va falloir que tu déplaces la fin d'un tag DIV.

    A partir d'ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    with (document.getElementById('gallery')) {
            innerHTML = chemin;
        }
    Tu efface certainement ton script, puisqu'il est 'enfant' de DIV[id=gallery]

    Fait très attention aussi, les ids doivent être unique. Et là tu as plus d'un id="img"

    Par ailleurs, vérifie ta base :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"nom":null,"description":"Illustration pour pack Lobodis. Agence : DDB Nouveau Monde","nomFichier":"cafe.jpg","dateUpload":"13\/12\/2009"}

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 31
    Par défaut
    justement le problème viens de ces valeurs null puisqu'elles le devienne à la conversion php ==> javascript
    quand je les echo par de problèmes

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 31
    Par défaut
    Bon j'ai finalement trouver une solution convenable j'ai utiliser un htmlentities() sur toutes les valeurs que je récupère de ma base de données.

    Merci pour ton aide je place le post en résolu en espérant ne pas revenir tout de suite (sauf pour aider à la rigueur)

  12. #12
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    Il y a un très bon tuto sur comment ne pas s'emmeler les crayons avec les charsets ...http://j-willette.developpez.com/tut...-site-en-utf8/

    de base je mets toujours les fichiers en utf-8 sans BOM, mes tables en utf8, et si le serveur est paramètres en ISO je fais un setNames utf8 lors de mes connections et requetes ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 10/12/2014, 10h00
  2. Caractères spéciaux dans un fichier JSON
    Par Olivier P. dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 24/03/2014, 08h25
  3. Caractères spéciaux / Java parsing JSON
    Par franck06 dans le forum Langage
    Réponses: 2
    Dernier message: 25/04/2013, 16h37
  4. JSON et caractères spéciaux
    Par xc78370 dans le forum ASP
    Réponses: 4
    Dernier message: 30/04/2010, 11h36
  5. Traiter les caractères spéciaux
    Par ricola dans le forum Langage
    Réponses: 2
    Dernier message: 20/02/2003, 09h23

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