Page 1 sur 1

menu déroulant php avec lien

Posté : 18 déc. 2008, 14:19
par mickael686
Bonjour voila j'ai trouver un code pour un menu déroulant il fonctionne bien mais le souci le voici, je sais pas comment? et ou? placé les liens des sous menus avec la page qui correspond. quel est la syntaxe? merci d'avance

voici le code :
<body>
<?php

// Nombre total de menus
$nbr = 3;

// Ci-dessous lister vos menus en mettant le titre en premiere place dans le array, les autres seront les sous-menus...
$menu[1] = array ( 'Les rencontres',
'Match de la semaine',
'Match du week-end',
'Match du jour'
);

$menu[2] = array ('Nos conseils',
'Ticket simple',
'Ticket multiple',
'Ticket fou'
);

$menu[3] = array ('Bookmakers',
'Betwin',
'Unibet',
'Betclic'
);
// On définis le style des menus
$menu_tpl = '<div style="border: 1px solid #000000; width: 100px; background-color: #CCCCFF; padding: 2px"><a href={lien}>{element}</a></div>';

// On boucle pour afficher tout les menus
for ($i=1; $i<=$nbr; $i++) {
   
    // On selectionne le nom du Menu
    $element = $menu[ $i ][0];
   
    // On prevoit de refermer le menu en cliquant sur le lien (si menu ouvert)
    if ($_GET['to'] == $i) $lien = 'index.php?to=1';
    else $lien = '?to='.$i;
   
    // On applique le style
    $in = array ('{element}', '{lien}');
    $out = array ($element, $lien);
   
    $menus = str_replace ($in, $out, $menu_tpl);
   
    // On affiche le Menu stylé
    echo '<p>'.$menus.'</p>';
   
    // Si les sous-menus sont demandés, on les affiche en fonction...
    if (isset($_GET['to']) && $_GET['to'] != '') {
       
        // On vérifie le N° de Menu demandé pour limiter à 1 affichage les sous menus...
        if ($i == $_GET['to']) {
           
            // On boucle les sous-menus en fonctions des elements de l'array correspondant.
            for ($j=1; $j<=count($menu[ $i ])-1; $j++) {
               
                // On affiche le lien des sous-menus
                echo '<a href="?to='.$i.'goto='.$j.' ">'.$menu[ $i ][ $j ].'</a><br />';
            }
       
        }
   
    }

}
            

?>


</body>

Posté : 18 déc. 2008, 16:22
par Elie
Le script que tu as trouvé est un peu bidon ... Le seul moyen que j'ai trouvé est de faire un tableau avec les liens pour chaque menu.
J'aurais pu le faire encore mieux mais bon la ca marche :)
<?php

// Nombre total de menus
$nbr = 3;

// Ci-dessous lister vos menus en mettant le titre en premiere place dans le array, les autres seront les sous-menus...
$menu[1] = array ( 'Les rencontres',
'Match de la semaine',
'Match du week-end',
'Match du jour'
);

$liens[1] = array(NULL,
'http://www.lien1.com',
'http://www.lien2.com',
'http://www.lien3.com');

$menu[2] = array ('Nos conseils',
'Ticket simple',
'Ticket multiple',
'Ticket fou'
);

$menu[3] = array ('Bookmakers',
'Betwin',
'Unibet',
'Betclic'
);
// On définis le style des menus
$menu_tpl = '<div style="border: 1px solid #000000; width: 100px; background-color: #CCCCFF; padding: 2px"><a href={lien}>{element}</a></div>';

// On boucle pour afficher tout les menus
for ($i=1; $i<=$nbr; $i++) {
   
    // On selectionne le nom du Menu
    $element = $menu[$i][0];
   
    // On prevoit de refermer le menu en cliquant sur le lien (si menu ouvert)
    $lien = !empty($_GET['to']) && ($_GET['to'] == $i) ? 'index.php?to=1' : '?to='.$i;
   
    // On applique le style
    $in = array ('{element}', '{lien}');
    $out = array ($element, $lien);
   
    $menus = str_replace ($in, $out, $menu_tpl);
   
    // On affiche le Menu stylé
    echo '<p>'.$menus.'</p>';
   
    // Si les sous-menus sont demandés, on les affiche en fonction...
    if (isset($_GET['to']) && $_GET['to'] != '') {
       
        // On vérifie le N° de Menu demandé pour limiter à 1 affichage les sous menus...
        if ($i == $_GET['to']) {
           
            // On boucle les sous-menus en fonctions des elements de l'array correspondant.
            for ($j=1; $j<=count($menu[ $i ])-1; $j++) {
               
                // On affiche le lien des sous-menus
                echo '<a href="'.$liens[$i][$j].'">'.$menu[$i][$j].'</a><br />';
            }
       
        }
   
    }

}
            

?>