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 :

Dynatree, JSON, MySQL et PHP


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 24
    Points : 11
    Points
    11
    Par défaut Dynatree, JSON, MySQL et PHP
    Bonjour à tous,

    je suis stagiaire dans une boite et on m'a demandé de bosser sur une page web permettant de sélectionner des noeuds de la hiérarchie du service stockée dans une BDD MySQL pour pouvoir envoyer un message aux sélectionnés (cf capture 1).


    Je me suis tourné vers Dynatree qui permet de créer des arbres modifiables à souhait.
    Pour "peupler" ces arbres, on peut déclarer une variable JS qui reçoit une chaîne formatée JSON :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    var treeData = [
    		{title: "item1 with key and tooltip", tooltip: "Look, a tool tip!" },
    		{title: "Folder", isFolder: true, key: "id3",
    			children: [
    				{title: "Sub-item 3.1",
    					children: [
    						{title: "Sub-item 3.1.1", key: "id3.1.1" },
    						{title: "Sub-item 3.1.2", key: "id3.1.2" }
    					]
    				}
    			]
    		}];
    Sauf que moi, ma structure est stockée dans une base MySQL. J'ai donc codé une page php qui se connecte à la bdd et fait les différentes opérations pour récupérer une chaîne contenant exactement le même format de chaîne que ci-dessus.

    Jusque là, pas de pb.

    Là ou je galère, c'est sur la façon de passer cette chaîne de caractères à ma variable JS "treeData".
    Dans la doc de Dynatree, il est dit que l'on peut récupérer le contenu d'un flux/fichier JSON envoyé par un service web, mais je n'ai aucune idée de comment cela peut fonctionner.

    J'ai essayé de combiner php, html et JS :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <script type="text/javascript">
    			include("MySQLtoJSON.php"); // ce fichier php contient la fonction getJSON() qui retourne une chaîne de caractères formatée à la sauce JSON
    			$arbre = getJSON(); // Je récupère le contenu de cette chaîne dans $arbre
    			echo ("var treeData = ". $arbre);
     
    [...]
    </script>
    pour que mon fichier html ressemble à ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <script type="text/javascript">	
    			var treeData = [
    		{title: "item1 with key and tooltip", tooltip: "Look, a tool tip!" },
    		{title: "Folder", isFolder: true, key: "id3",
    			children: [
    				{title: "Sub-item 3.1",
    					children: [
    						{title: "Sub-item 3.1.1", key: "id3.1.1" },
    						{title: "Sub-item 3.1.2", key: "id3.1.2" }
    					]
    				}
    			]
    		}];
    </script>
    Lorsque je regarde le code source, tout s'affiche comme il faut (du moins il me semble) mais le dynatree ne s'affiche plus.

    Je suis bien conscient que mon code/raisonnement est un peu tiré par les cheveux mais je vois pas trop comment mieux m'y prendre d'une autre façon.

    Merci pour tout coup de main.

    Hubert
    Images attachées Images attachées  

  2. #2
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Salut hubchau, je ne suis que débutante mais je pense tout d'abord que lorsque tu utilises :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <script type="text/javascript">
     
    include("MySQLtoJSON.php"); 
    $arbre = getJSON();
    echo ("var treeData = ".$arbre);
     
    </script>
    il faut le faire apparaître à l’intérieur de balises php tel que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <script type="text/javascript">
     
    <?php  include("MySQLtoJSON.php"); 
    $arbre = getJSON();
    echo ("var treeData = ".$arbre); ?> 
     
    </script>
    Je ne pense pas que include existe en js, du moins pas avec cette syntaxe.
    Désolée de ne pouvoir plus t'aider.
    Bon courage

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 24
    Points : 11
    Points
    11
    Par défaut
    Merci de ta réponse. J'avais effectivement fais une erreur là mais elle n'était pas la cause de mon pb. Par contre, j'ai réussi à tout gérer, c'était simplement un problème de formatage : mon fichier JSON n'était pas parfait !

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 04/03/2014, 15h23
  2. JSON, accent, mysql et php (webservice)
    Par lilsgabbg dans le forum Langage
    Réponses: 1
    Dernier message: 19/07/2012, 14h06
  3. Export MySql en php
    Par pierre50 dans le forum Débuter
    Réponses: 5
    Dernier message: 11/08/2010, 13h46
  4. Installer apache, mysql et php sur une red hat 9 !
    Par Ruddy16 dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 07/11/2005, 21h41
  5. requête mysql sous php
    Par remi59 dans le forum Débuter
    Réponses: 9
    Dernier message: 03/07/2003, 10h39

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