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

  1. #1
    Membre à l'essai
    Femme Profil pro
    Développeur Web
    Inscrit en
    janvier 2019
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : janvier 2019
    Messages : 18
    Points : 15
    Points
    15

    Par défaut Structurer menu en fonction d'une base de données

    Bonsoir,

    J'ai un menu qui contient en titre le nom des catégories. En sous-menu quand je le déroule (animé via javascript), je voudrais afficher tous les produits qui appartiennent à cette catégorie.

    J'ai essayé ceci mais ça ne fonctionne pas :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php foreach ( $categories as $cat ): ?>
                        <li class="titre-categorie"><?php echo $cat['c_name'] ?><i class="fas fa-plus fleche"></i>
                        </li>
                        <ul class="ss-titre-categorie">
                            <?php foreach ( $produits as $p ) : ?>
                               <?php if ( $cat['c_id'] == $p['c_id'] ) { ?>
                                    <li data-id=<?php echo $p['c_id'] ?>><?php echo $p['p_name'] ?></li>
                                <?php }endforeach; ?>
                        </ul>
                    <?php endforeach; ?>

    Je dois structurer mon code via une architecture MVC. Est-il possible de passer via un lien (par exemple en cliquant sur le titre) ou autre l'id de la catégorie et du coup récupérer les produits en fonction ? Il faudrait cependant que la page ne se recharge pas (ajax)
    Est-ce que vous voyez un autre moyen sinon ?

  2. #2
    Membre expérimenté Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2012
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Maroc

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

    Informations forums :
    Inscription : janvier 2012
    Messages : 1 013
    Points : 1 651
    Points
    1 651

    Par défaut

    Salut,

    Pourquoi ton code ne fonctionne pas ? ça me parait pourtant bon.

    Pour ajax, oui tu peux le faire, mais je pense que ce n'est pas vraiment utile, parce que d'habitude un menu est prêt quand la page est chargée.

    Mais si tu veux personnaliser ton traitement et utiliser Ajax, tu peux par exemple stocker le id de la catégorie dans un attribut "data-idcat"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <li class="titre-categorie" data-idcat="<?php echo $cat['c_id'];?>">.....</li>
    Après tu récupère la valeur de l'id catégorie via un déclencheur d'événement "click" pour lancer une requête ajax

  3. #3
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    octobre 2011
    Messages
    718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

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

    Informations forums :
    Inscription : octobre 2011
    Messages : 718
    Points : 1 492
    Points
    1 492

    Par défaut

    Bonjour,
    Je te conseille d'utiliser Ajax en suivant les étapes ci après :
    - tu charges les catégories dans un tableau ;
    - tu parcours le tableau des catégories et construis ton menu. Afin de retrouver les items du menu de façon unique, tu ajoutes à chacun l'attribut id en lui donnant la valeur du code de la catégorie.
    - ton menu construit et prêt, tu gères l'événement click sur les items et tu récupères l'id de ce dernier qui contient le code de la catégorie, tu envoies une requête Ajax pour charger et construite le sous menu comme tu avais fait pour le menu.

    Désolé de ne t'avoir pas donné de portions de code, je réponds depuis mon téléphone.

    Christian Djo,
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

  4. #4
    Rédacteur/Modérateur
    Avatar de jreaux62
    Homme Profil pro
    Webdesigner
    Inscrit en
    août 2008
    Messages
    15 032
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Arts - Culture

    Informations forums :
    Inscription : août 2008
    Messages : 15 032
    Points : 30 629
    Points
    30 629

    Par défaut

    Bonjour,

    Citation Envoyé par Toufik83 Voir le message
    ...Pour ajax, oui tu peux le faire, mais je pense que ce n'est pas vraiment utile, parce que d'habitude un menu est prêt quand la page est chargée....
    Je suis d'accord avec Toufik83.

    1- Un menu (même un "maxi-menu"), n'est pas censé avoir 10 000 entrées (ou alors, c'est qu'il est mal conçu).
    Donc, on doit pouvoir tout charger en PHP, sans besoin d'appeler Ajax.

    2- "Ca ne fonctionne pas" n'apporte AUCUNE information utile.
    Explique.

    3- Par contre, le code HTML n'est pas correct : il faut que le <ul>...</ul> du sous-menu soit DANS le <li>...</li> du menu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
             <li class="titre-categorie">...
                        <ul class="ss-titre-categorie">
     ...
                        </ul>
             </li>
    "Si tu suis le chemin qui s'appelle « plus tard », tu arriveras à la place qui s'appelle « jamais »."
    François Camille Prévot (1910-1996), instituteur puis Directeur d'école et... mon grand-père.
    "Pose ta question, tu seras idiot une seconde. Ne la pose pas, tu seras idiot toute ta vie."
    Albert Einstein (1879-1955).
    Mes tutos DVP
    Gestion-Affichage de Nouvelles
    Affichage en tableau HTML
    Fonctions de redimensionnement d'images

  5. #5
    Membre à l'essai
    Femme Profil pro
    Développeur Web
    Inscrit en
    janvier 2019
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : janvier 2019
    Messages : 18
    Points : 15
    Points
    15

    Par défaut

    Bonjour !

    Merci à tous pour vos réponses. Vu que ça ne fonctionnait toujours pas (produits pas en adéquation avec les catégories) je suis passée par Ajax et du coup je récupère bien les produits pour chaque catégories

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

Discussions similaires

  1. [XL-2010] Calcul automatique en fonction d'une base de donnée
    Par sebsrv dans le forum Excel
    Réponses: 3
    Dernier message: 06/03/2013, 14h30
  2. Menu et liaison avec une base de donnée
    Par ishere11 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 08/07/2011, 11h59
  3. Cocher une checkox en fonction d'une base de données
    Par danhds dans le forum Ext JS / Sencha
    Réponses: 2
    Dernier message: 10/02/2011, 09h54
  4. Menu et liaison avec une base de donnée
    Par Jatukam dans le forum ASP.NET
    Réponses: 6
    Dernier message: 26/08/2008, 13h10

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