Bonjour,

Voila je rencontre un petit problème avec mon code.
le menu s'affiche bien et l image aussi mais le lien ne fonctionne pas et je ne comprent pas pourquoi.

Décrivez ici votre code ou ce que vous cherchez à faire
<?php foreach($Menu as $Menu): ?>
<ul class="nav"> <li class="Menu"><a href="../View/<?= $Menus->Liens?> " ><i class="lnr lnr-<?= $Menu->Image ?>"></i> <span>``<?= $Menu->Menus ?></span></a> </li> </ul> <?php endforeach ?>`


je voudrais comprendre pourquoi le lien ne fonctionne pas

Décrivez ici ce que vous cherchez à obtenir

### Ce que j'obtiens

il se passe rien

9 réponses


Pierrot01
Réponse acceptée

L'erreur est là ;)

foreach($Menu as $Menu)

il faut mettre
foreach($Menus as $Menu)

    $Menus =  $query->fetchall(PDO::FETCH_OBJ);
    ...........................................
    .............................................
    ............................................
    foreach($Menus as $Menu)

@pluche

Pierre

Bonsoir,
pourquoi un s a $menu pour les liens ?
as-tu inspecter ton code via le navigateur pour un var_dump sur $menu afin de vérifier qu'il contient les informations demandé ?

pour repondre a ta question j' ai fait un fetchall sur la table comme sa
et voila print _r sur menu et pour info je suis debutant merci des reponce que tu pourra m'apporter

Array ( [0] => stdClass Object ( [Id_Menus] => 1 [Menus] => Accueil [Liens] => acceuil.php [Image] => home [Positionnement] => 1 [Etat] => 1 [Info_Menu] => Vous ramene a la page d'accueil ) [1] => stdClass Object ( [Id_Menus] => 3 [Menus] => menu 1 [Liens] => Menu1.php [Image] => 3 [Positionnement] => 2 [Etat] => 1 [Info_Menu] => ) [2] => stdClass Object ( [Id_Menus] => 2 [Menus] => quitter [Liens] => quitter [Image] => exit [Positionnement] => 100 [Etat] => 1 [Info_Menu] => Voue aller ?tre d?connecter ) )

 try {        
        $query = $pdo->query('SELECT * FROM `menus` WHERE `Etat` = 1 and `Positionnement` ORDER BY `Positionnement` ASC ');

        $Menu =  $query->fetchall(PDO::FETCH_OBJ); 

    }     

         catch ( PDOException $e ) {
            $error = $e->getMessage();

    }

Donc tu as bien les données.
As-tu fait la modif pour le s à$Menus->Liens ?

oui et j' ai bien verifier j'ai bien cree une page acceuil.php

Remets le code modifié, merci

<?php
    // ont selection la table et 

    try {        
        $query = $pdo->query('SELECT * FROM `menus` WHERE `Etat` = 1 and `Positionnement` ORDER BY `Positionnement` ASC ');

        $Menu =  $query->fetchall(PDO::FETCH_OBJ); 
        // print_r($Menu);
    }     

         catch ( PDOException $e ) {
            $error = $e->getMessage();

    }

    ?>
<?php foreach($Menu as $Menu): ?>
        <ul class="nav">
          <li class="Menu"><a href="/View/<?= $Menu->Liens ?>"><i class="lnr lnr-<?= $Menu->Image ?>"></i> <span><?= $Menu->Menus ?></span></a> </li>
        </ul>
        <?php endforeach ?> </nav>

    Array ( [0] => stdClass Object ( [Id_Menus] => 1 [Menus] => Accueil [Liens] => acceuil.php [Image] => home [Positionnement] => 1 [Etat] => 1 [Info_Menu] => Vous ramene a la page d'accueil ) [1] => stdClass Object ( [Id_Menus] => 3 [Menus] => menu 1 [Liens] => Menu1.php [Image] => 3 [Positionnement] => 2 [Etat] => 1 [Info_Menu] => ) [2] => stdClass Object ( [Id_Menus] => 2 [Menus] => quitter [Liens] => quitter [Image] => exit [Positionnement] => 100 [Etat] => 1 [Info_Menu] => Voue aller ?tre d?connecter ) )

voila

Quand tu regardes le code source, ton lien s'affiche bien ?
La ton lien va chercher un dossier "View" dans le dossier actuelle puis se rendre sur la page dans ce dernier dossier, est-ce bien cela ? Quel est ton arborescence ?

D:\Programme\Xampp\htdocs\Site\View
memes si je rajoute .. a <a href="../View/<?= $Menu->Liens ?>"cela ne fonctione pas