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 :

Double cote variable javascript


Sujet :

JavaScript

  1. #1
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 250
    Points : 96
    Points
    96
    Par défaut Double cote variable javascript
    bonjour,

    J'ai un souci de syntaxe que je n'arrive pas à résoudre en javascript . Je boucle sur un tableau et je souhaite récupérer les valeurs du tableau et les stocker dans une variable javascript pour l'utiliser par la suite. Mais je souhaite supprimer des doubles côtes qui apparemment sont stockées dans ma variable finale :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
            var series_b = new Array();
     
    	for (var i = 0; i < series_b_tab[n].length; i++)
    	{ 
     
    		series_b[i] = series_b_tab[n][i];	
     
    	}
    un exemple de valeurs series_b_tab est le suivant : {name : ' Commite : 0', type :'column', yAxis : 1 ,data : [2436]} et {name : ' Commite : 1', type :'column', yAxis : 1 ,data : [2510,171]}

    Dans series_b je souhaite avoir : series_b = [{name : ' Commite : 0', type :'column', yAxis : 1 ,data : [2436]},{name : ' Commite : 1', type :'column', yAxis : 1 ,data : [2510,171]}] et non
    series_b = ["{name : ' Commite : 0', type :'column', yAxis : 1 ,data : [2436]}","{name : ' Commite : 1', type :'column', yAxis : 1 ,data : [2510,171]}"] " avec les doubles côtes

    si j'écris littéralement

    var series_b = [{name : ' Commite : 0', type :'column', yAxis : 1 ,data : [2436]},{name : ' Commite : 1', type :'column', yAxis : 1 ,data : [2510,171]}];

    Cela fonctionne pour pouvoir utiliser cette variable. Est-il possible avec mon exemple d'avoir dans ma variable series_b le contenu ci-dessus ?

    Merci

  2. #2
    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 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 637
    Points : 66 662
    Points
    66 662
    Billets dans le blog
    1
    Par défaut
    elle vient d'ou la variable et tu essaye de la récupérer ou ?
    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 !

  3. #3
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 250
    Points : 96
    Points
    96
    Par défaut
    Les données sont stockées dans le tableau double entrée series_b_tab , je boucle sur i (je n'ai pas mis la boucle sur n dans l'exemple) et stocke dans le tableau series_b

    Je veux stocker le contenu afin d'avoir var series_b = [{name : ' Commite : 0', type :'column', yAxis : 1 ,data : [2436]},{name : ' Commite : 1', type :'column', yAxis : 1 ,data : [2510,171]}];

    donc 1er élément i: {name : ' Commite : 0', type :'column', yAxis : 1 ,data : [2436]}
    2 ieme i :{name : ' Commite : 1', type :'column', yAxis : 1 ,data : [2510,171]}

  4. #4
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Pour moi des doubles côtes c'est ça:

    ou encore ça


    J'imagine que tu fais références à l'anglais "quotes", aussi appelés guillemets dans la langue de Molière.

    Tes données sont castées en String en amont dans ton code, tu ne nous a pas montré assez de code pour savoir à quel endroit exactement.

    Tu peux rectifier le tir avec un series_b[i]= JSON.parse(series_b_tab[n][i]);, mais il serait préférable de savoir pourquoi ces données sont en String à ce niveau. Si elles proviennent d'une réponse serveur en JSON, mieux vaut les parser dès l'arrivée plutôt qu'au milieu du code.
    One Web to rule them all

  5. #5
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 250
    Points : 96
    Points
    96
    Par défaut
    oui effectivement je pense que je devrais m'y prendre autrement et travailler plus en amont . Car en utilisant JSON.parse j'ai un retour erreur : "SyntaxError: JSON.parse: expected property name or '}' at line 1 column 2 of the JSON data"

    Voici le reste de mon code

    Je stocke mes données dans un tableau double entrée en php :

    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
    	foreach ($tabCommite as $Commite)
    	{	
     
     
    		$strRequest = "SELECT nbre_logement as data, etat_local as legend
    		FROM ".secteur_ipe.$Commite." WHERE libelle = '".$Lot."' 
    		ORDER BY ".secteur_ipe.$Commite.".etat_local ASC";	
     
    		$bar = Bar($strRequest,$Commite);
     
    		$Legend = $bar->Legend;
    		$tabData = $bar->Data;			
     
     
    		$series_bar[$n][$i] = "{name : ' Commite : ".$Commite."', type :'column', yAxis : 1  ,data : [".join($tabData,",")."]}";
     
    		$i++;
     
     
    	} // end for
    Puis je veux récuperer mes données dans une variable javascript

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var series_b_tab =  <?php echo json_encode($series_bar)?>; 
     
    	var series_b = new Array();
     
    	for (var i = 0; i < series_b_tab[n].length; i++)
    	{ 
     
    		series_b[i] = series_b_tab[n][i];
     
     
    	}
    Je récupère bien mes données mais il faudrait que series_b soit de la forme

    var series_b = [{name : ' Commite : 0', type :'column', yAxis : 1 ,data : [2436]},{name : ' Commite : 1', type :'column', yAxis : 1 ,data : [2510,171]}];

    et la j ai :var series_b = ["{name : ' Commite : 0', type :'column', yAxis : 1 ,data : [2436]}","{name : ' Commite : 1', type :'column', yAxis : 1 ,data : [2510,171]}"];



    Normal car je récupère des string . Il faudrait que j'ai des objets.. en fait j'ai essayé pas mal de trucs dont json.parse mais j'ai des retour erreurs à cause des simples (côtes )

    La solution doit être simple mais je ne trouve pas .. à l'aide !!

    Nom : quote.jpg
Affichages : 636
Taille : 48,6 Ko

  6. #6
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 250
    Points : 96
    Points
    96
    Par défaut
    Trouvé la solution !

    php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $series_bar[$n][$i] = "name : ' Commite : ".$Commite."', type :'column', yAxis : 1  ,data : [".join($tabData,",")."]";
    javascript

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    series_b[i] = eval('({' + series_b_tab[n][i] + '})');

  7. #7
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Je te déconseille fortement de passer par eval. On peut s'en servir pour faire de l'injection de code. Essaie par exemple de tester avec une valeur Commite égale à "')))))))))}}}}]]];;;alert("CODE INJECTE");

    JSON.parse() est la méthode la plus sûre. Mais ça implique que tes données soient du JSON valide, là tu dois avoir une erreur de formattage quelque-part.
    One Web to rule them all

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

Discussions similaires

  1. variable asp / variable javascript
    Par mr.t dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/05/2005, 15h52
  2. variable asp / variable javascript
    Par mr.t dans le forum ASP
    Réponses: 2
    Dernier message: 26/05/2005, 15h12
  3. [C#] Variable javascript accessible
    Par stailer dans le forum ASP.NET
    Réponses: 12
    Dernier message: 01/04/2005, 12h18
  4. Variables javascript non correctement définies
    Par LLaurent dans le forum XMLRAD
    Réponses: 5
    Dernier message: 11/05/2004, 12h39

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