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

Langage PHP Discussion :

Menu dynamique en cascade


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 18
    Points : 9
    Points
    9
    Par défaut Menu dynamique en cascade
    Voila, j'apprends le php mysql car les gros truc joomla et autre, c'est bien mais lourd a la fin :p du coup, comme beaucoup je passe au php afin de développer mon site de la façon qui me convient le mieux.

    A l'exception du menu pour lequel je viens vous voir, tous le reste fonctionne parfaitement même si j'ai bien conscience qu'un optimisation du code et des base de donnée serait pas du luxe.

    Voila, je cherche a faire des menu par bloc successif (a la joomla) qui afficher les liens parents et quand on clic sur celui que l'on veut, deux options se présent:

    1) A la joomla, on est rediriger sur une autre page (la même avec une variable différentes est envisageable) qui affichent alors les enfants du lien sélectionner.

    2) Alliez a un JavaScript que l'on m'a créer, un onclick se déclenche et applique un slide pour afficher les enfants sans changer de page.

    D'où ma double question savez vous comment faire un menu tel que le 1) (j'ai bien fouillez dans joomla mais le code m'échappe complètement) Sinon, comment effectuez un test qui vas permettre la realisations du 2) sachant que:

    Ma base de donnée pour les menu est la suivantes:
    1 table avec le titre des blocs
    1 table avec les menu parents et le rappel de l'id de la table blocs
    1 table avec les menu enfants et le rappel del'id de la table menu parent
    ...
    et ainsi de suite.
    le test doit permettre de regarder si l'id du lien present dan menu parents est presents dans le rappel de la table menu enfants. Si oui, un echo ecris un lien avec le onclick du slide, si non un autre echo ecris le lien en href normal et sela pour tous les liens des qu'il appraissent.

    Je sais, c'est deux trucs de malade que je cherche a faire mais bon, j'ai beau cherchez, j'arrive pas et c'est le dernier trucs qui me bloque.

    Si vous avez une idée, n'hesitez pas a me la proposez, même si cela doit modifier les base de donnée :p

    Merci de votre attention.

  2. #2
    Membre habitué Avatar de Epica84
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    164
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 164
    Points : 188
    Points
    188
    Par défaut
    Bonjour ^^,

    Tiens voilà des menus en cascade dites moi, si cela vous aides : http://www.milonic.com/menu.php

    Si toutefois, vous n'arrivez pas à faire se que vous souhaitez alors je m'y pencherai un peu plus sur le problème.

    Cordialement

  3. #3
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    Merci Epica84 de ta réponse. Malheureusement, elle ne convient pas a ce que je voudrais faire car les menu présenter (bien que agréable) nécessite un recouvrement des textes et articles sur le reste de la page.

    Je cherche plutôt quelque chose qui sera sur le principe de joomla:

    -Accueil
    -Contact
    -Contact admin
    -Contact Staff
    ...
    Mais avec les sous niveau qui ne s'affiche que lorsqu'il sont demander soit par un clic sur le lien soit sur la page ou nous envoie le lien Contact.

    J'ai bien un JavaScript qui me permet de faire un slide et donc de pouvoir faire apparaitre les sous menu au clic mais je ne parviens pas a faire un test qui vérifie si le lien a des enfants. Si oui, il y a un écho qui met l'appel du JavaScript sinon c'est le lien pur.

    Encore merci de ta reponse qui pourras aidez d'autre que moi :p

  4. #4
    Membre habitué Avatar de Epica84
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    164
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 164
    Points : 188
    Points
    188
    Par défaut
    De rien pour la réponse malgré que je n'est pas fait grand chose.

    Montrez nous un peu votre code afin de voir si on peu faire quelque chose .

    Peut-être que sa nous aideras .

  5. #5
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    oui en effet. et je viens de me rendre compte que l'affichage du menu n'est pas apparu comme je le voulais :p

    je le refait juste avant le code:

    -Accueil
    -Contact
    .....-Contact Admin
    .....-Contact Staff
    ....

    Voila comme ca il apparaitras plus propre.

    Alors auparavant, je précise que mes tables sont mal faites pour le moment, en effet, j'ai une table pour savoir combien de bloc sont afficher, une tables pour le liens parents qui ont un rappelle de l'id du bloc dans lequel il s'affiche puis encore une table pour es enfants qui ont un rappelle de l'id du lien parents,....
    et ainsi de suite, si une structure dans une table permet de faire au moins 5 niveau de menu imbriquer:

    -Lien parents (1)
    ...-Lien enfants (2)
    ......-Lien enfants (3)
    .........-Lien enfants (4)
    ............-Lien enfants (5)

    ou un niveau infinie

    Dites le moi que je m'y mette car sinon c'est usine a gaz et a requête


    Voila, le code JavaScript qui permet de faire les slides:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <script type="text/javascript">
    function showHide(obj)
    {
    	var ns = obj.parentNode.nextElementSibling;
    	if(ns.nodeName.toUpperCase() == "UL")
    		ns.style.display = (ns.style.display == "block") ? "none" : "block";
    }
    </script>
    et s'active avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onClick="showHide(this);return false
    dans le lien.

    Maintenant, voila le code de test que j'utilise:
    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
    <ul>
    <?php
    include("config.php");
    $left_menu = mysql_query("Select id, title FROM jos_left ORDER BY id ASC") or die (mysql_error());
    $donnees_left_menu = mysql_fetch_array($left_menu);
    while ($donnees_left_menu = mysql_fetch_array($left_menu))
    {
    	echo'<div class="left_header_articles"></div><div class="right_header_articles"></div><div class="center_header_articles"></div><div class="left"><fieldset><legend>'.$donnees_left_menu['title'].'</legend>';
    ?>
        <ul>
        <?php
    	$left_linka = mysql_query("Select id, title, link FROM jos_left_link WHERE id_jos_left = ".$donnees_left_menu['id']." ORDER BY id ASC") or die (mysql_error());
        //$left_linka = mysql_query("Select id, title, link FROM jos_left_link ORDER BY id ASC") or die (mysql_error());
     
        while ($donnees_left_linka = mysql_fetch_array($left_linka))
        {
            $res = mysql_query("SELECT COUNT(*) FROM jos_left_link2 WHERE id_jos_left_link = '".$donnees_left_linka['id']."'");
        //echo "$res<br>";
        if(mysql_num_rows($res) == 0){
            echo '<a href="#" onClick="showHide(this);return false">'.$donnees_left_linka['title'].'</a><br />';
        }
        else{
            echo'<a href="'.$donnees_left_linka['link'].'">'.$donnees_left_linka['title'].'</a><br />';
        }
        }
        ?>
        </ul>
    <?php
    	echo '</fieldset></div><div class="left_footer_articles"></div><div class="right_footer_articles"></div><div class="center_footer_articles"></div><br>';
    }
    ?>
    </ul>
    Mais il me bloque le premier id de chaque table (blocs ou liens)

    sinon j'avais essayer par celui la:
    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
    <ul>
    	<?php
    		while ($donnees_left_menu)
    		{
    			echo'<div class="left_header_articles"></div><div class="right_header_articles"></div><div class="center_header_articles"></div><div class="left"><fieldset><legend>'.$donnees_left_menu['title'].'</legend>';
    				while ($donnees_left_link = mysql_fetch_array($left_linka))
    				{
    					if(mysql_num_rows($res) > 0){
    						echo '<a href="#" onClick="showHide(this);return false">'.$donnees_left_linka['title'].'</a>';
    					}
    					else{
    						echo'<a href="'.$donnees_left_linka['link'].'">'.$donnees_left_linka['title'].'</a><br />';
    					}
    				}
    		}
        ?>
    </ul>
    mais lui, il me met la même formulation de code pour tous les liens qu'ils est ou non des enfants.

    Voila, si vous voulez des precision, n'hesitez pas et si vous voulez m'avoir de plus vive voix, je peux vous avoir sur msn ou bien skype.

  6. #6
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    Vous n'avez pas d'idée? meme pour le test?

Discussions similaires

  1. Menu deroulant en cascade dynamique JAVASCRIPT / PHP
    Par Moostik dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/02/2008, 10h54
  2. Créer un sous-menu dynamiquement
    Par PurL dans le forum C++Builder
    Réponses: 4
    Dernier message: 09/09/2004, 10h31
  3. [JSP]menu dynamique en jsp
    Par laouedjahmed dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 22/03/2004, 10h50
  4. Menu dynamique sous Flash MX
    Par dens63 dans le forum Flash
    Réponses: 7
    Dernier message: 29/10/2003, 15h46

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