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

jQuery Discussion :

Context menu alimenté par une table


Sujet :

jQuery

  1. #1
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut Context menu alimenté par une table
    Bonsoir à tous,

    J'utilise depuis quelques années un menu contextuel.

    On me demande d'ajouter un nouvel item dans ce menu. Cet item devrait se composer d'un sous-menu :

    Exemple :
    Utilisateurs > David
    Jean
    Marc
    Les noms qui apparaissent dans le sous-menu devraient être chargés à partir d'une table d'une base de données.

    Je récupère les données sans problème :

    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
    $.ajax({
        type: 'POST',
        url: 'ajax/liste_users.php',
        dataType: 'json',
        success: function (retour_php) {
     
     
            $.each(retour_php, function (index, value) {
                json_user_list += '"fold2-key1": {"name": ' + value + '},'
            });
            console.log(json_user_list);
        },
        error: function () {
     
        }
     
    });
    Un console.log du retour php me donne ceci :
    ["1", "Pierre Vanhove", "2", "Cedric Delplanque", "3", "Benjamin Langlais"]
    J'ai ensuite un souci pour exploiter le retour php pour intégrer le résultat dans le context menu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    "sousmenu": {
        "name": "Too book for ",
        "items": {}
    },
    j'ai essayé un $.each... rien ne fonctionne.

    Je ne vois donc pas comment je peux faire.

    Auriez-vous une idée svp ?

    Merci d'avance pour l'aide.

    bee

  2. #2
    Membre éclairé Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Points : 831
    Points
    831
    Par défaut
    Vu la forme de retour_php, il serait peut-être mieux de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $.each(retour_php, function(index, value) {
        if (index%2) {
            json_user_list+= '"fold2-key1": {"name": '+value+'},';
        }
    });

  3. #3
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Salut,

    Merci pour pour ta réponse qui résout la première partie de mon problème.

    J'obtiens maintenant ce format qui ressemble beaucoup plus au json :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "fold2-key1": {"name": Pierre Vanhove},"fold2-key1": {"name": Cedric Delplanque},"fold2-key1": {"name": Benjamin Langlais}
    Maintenant, comment exploiter ce résultat dans l'objet json ci-dessous ? :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    "sousmenu":
    {
    	"name": "Too book for ", 
    	"items":
    	{
     
    		json_user_list											
     
    	}
    },
    J'ai essayé de juste mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    "sousmenu":
    {
    	"name": "Too book for ", 
    	"items":
    	{
    														
    		json_user_list	
    														
    	}
    },
    J'obtiens alors :

    Invalid object initializer
    J'ai aussi essayé avec un $.each, sans succès.

    Je pense que c'est la partie la plus compliquée du problème.

    Merci d'avance pour l'aide.

    bee

  4. #4
    Membre éclairé Avatar de micetf
    Homme Profil pro
    Professeur des Ecoles
    Inscrit en
    Mai 2009
    Messages
    557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Professeur des Ecoles
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2009
    Messages : 557
    Points : 831
    Points
    831
    Par défaut
    Il faudrait voir comment cela est ensuite utiliser dans le menu contextuel pour créer l'objet au mieux,
    mais peut-être que ce bout de code t'éclairera pour la suite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    var json_user_list=[],
         retour_php = ["1", "Pierre Vanhove", "2", "Cedric Delplanque", "3", "Benjamin Langlais"];
    $.each(retour_php, function(index, value) {
    	if (index%2) json_user_list.push(value);
    });
     
    var menu = {
    	libelle : "Utilisateur",
    	items : json_user_list
    };
     
    console.log(menu);
    console.log(menu.items[0]);

Discussions similaires

  1. Réponses: 7
    Dernier message: 11/05/2010, 16h37
  2. [AC-2007] Cases à cocher alimenté par une table
    Par miamou dans le forum IHM
    Réponses: 7
    Dernier message: 07/12/2009, 17h33
  3. Alimentation d'une table par une autre
    Par Atojul dans le forum SAS Base
    Réponses: 2
    Dernier message: 11/06/2008, 15h30
  4. Réponses: 2
    Dernier message: 29/03/2007, 11h47
  5. trier un stringgrid alimenter par une table MySql
    Par boopix dans le forum C++Builder
    Réponses: 3
    Dernier message: 22/03/2007, 14h28

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