Page 1 sur 2

Problème boucle while

Posté : 28 sept. 2024, 09:11
par hakazizi
Bonjour,
je suis sur la création de mon porte folio, mais je rencontre un problème, je voudrais afficher une class différente si le lien est sur la current page ou non.
le problème que je rencontre c'est que la class apparait sur tous les liens si on est sur une des pages, concerné et pas uniquement la current page.
Je n'ai pas de solution et encore moins de pistes cela fait quelques jours que je tourne en rond.
Merci.
vous pouvez avoir un visuel sur cette page :
https://web-developer-nantes.com/
Sous l'onglet voir projet et ouvrez une des pages.
Merci.

Code : Tout sélectionner

if($_SERVER['REQUEST_URI']==='/projects/afac974.html'){ $title='projet AFAC974'; } if($_SERVER['REQUEST_URI']==='/projects/carte-postale.html'){ $title='projet cr&eacute;ation de carte postale'; } if($_SERVER['REQUEST_URI']==='/projects/faketory.html'){ $title='projet Faketory'; } if($_SERVER['REQUEST_URI']==='/projects/la-rose-de-l-orient.html'){ $title='projet la Rose de l&apos;Orient'; } if($_SERVER['REQUEST_URI']==='/projects/robe-et-vetement.html'){ $title='projet Robe et V&ecirc;tement'; } if($_SERVER['REQUEST_URI']==='/projects/the-wild-fork.html'){ $title='projet THE Wild FORK'; } $data_projects=mysqli_query($connectionbd,"SELECT * FROM `project`") while($projects=mysqli_fetch_array($data_projects)){ ?> <li><a href='../projects/<?php echo $projects['name']; ?>.html'<?php if($title==='projet AFAC974'){ ?>class='current'<?php } elseif($title==='projet cr&eacute;ation de carte postale'){ ?>class='current'<?php } elseif($title==='projet Faketory'){ ?>class='current'<?php } elseif($title==='projet la Rose de l&apos;Orient'){ ?>class='current'<?php } elseif($title==='projet Robe et V&ecirc;tement'){ ?>class='current'<?php } elseif($title==='projet THE Wild FORK'){ ?>class='current'<?php } ?>><?php echo $projects['name']; ?></a></li> <?php } ?>

Re: Problème boucle while

Posté : 28 sept. 2024, 09:23
par or 1
$title ne change jamais dans la boucle, à l'inverse de $projects['name']

Re: Problème boucle while

Posté : 28 sept. 2024, 09:33
par hakazizi
Heureusement $title est là pour définir la page où on est sinon les conditions ne serviraient à rien.
Merci pour ton intervention
PS j'avait oublier un détail dans le menu cette algo fonctionne très bien

Code : Tout sélectionner

<li><a href='../web-developer.html' <?php if($title==="d&eacute;veloppeur web"){ ?>class='current'<?php } ?>>d&eacute;veloppeur web</a></li>

Re: Problème boucle while

Posté : 28 sept. 2024, 09:49
par nestor94
?>><?php echo $projects['name']; ?></a></li>
C'est une faute de frappe? il y a 1 > en trop, non?

Re: Problème boucle while

Posté : 28 sept. 2024, 11:12
par hakazizi
Je viens de passer la page au validateur pas d'erreur à ce niveau
Actuellement je suis sur mon téléphone je vous mettrai le rendu html dès que je rentre.
voila un nouvel édit...
Page d'accueil

Code : Tout sélectionner

<header class='navbar'> <nav> <p><a href='../' class='current'>Accueil</a></p> <ul id='show-menu'> <li><a href='../web-developer.html' >d&eacute;veloppeur web</a></li> <li><a href='../cv-hakim-azizi.html' >CV</a></li> <li><a href='../portfolio.html' >Portfolio</a></li> <li id='show-projects' onclick="openProjects()"><span >Voir les projets</span> <ul id='projects'> <li><a href='../projects/afac974.html'>afac974</a></li> <li><a href='../projects/carte-postale.html'>carte-postale</a></li> <li><a href='../projects/faketory.html'>faketory</a></li> <li><a href='../projects/la-rose-de-l-orient.html'>la-rose-de-l-orient</a></li> <li><a href='../projects/robe-et-vetement.html'>robe-et-vetement</a></li> <li><a href='../projects/the-wild-fork.html'>the-wild-fork</a></li> </ul> </li> <li><a href='../collaboration.html' >Collaboration</a></li> <li><a href='../contact.html' >Contact</a></li> <li><a href='../partner.html' >Partenaire</a></li> </ul> </nav> </header>
Une des page projet

Code : Tout sélectionner

<header class='navbar'> <nav> <p><a href='../' >Accueil</a></p> <ul id='show-menu'> <li><a href='../web-developer.html' >d&eacute;veloppeur web</a></li> <li><a href='../cv-hakim-azizi.html' >CV</a></li> <li><a href='../portfolio.html' >Portfolio</a></li> <li id='show-projects' onclick="openProjects()"><span class='current'>Voir les projets</span> <ul id='projects'> <li><a href='../projects/afac974.html'class='current'>afac974</a></li> <li><a href='../projects/carte-postale.html'class='current'>carte-postale</a></li> <li><a href='../projects/faketory.html'class='current'>faketory</a></li> <li><a href='../projects/la-rose-de-l-orient.html'class='current'>la-rose-de-l-orient</a></li> <li><a href='../projects/robe-et-vetement.html'class='current'>robe-et-vetement</a></li> <li><a href='../projects/the-wild-fork.html'class='current'>the-wild-fork</a></li> </ul> </li> <li><a href='../collaboration.html' >Collaboration</a></li> <li><a href='../contact.html' >Contact</a></li> <li><a href='../partner.html' >Partenaire</a></li> </ul> </nav> </header>

Re: Problème boucle while

Posté : 29 sept. 2024, 13:20
par hakazizi
Bonjour,
Vraiment personne n'as une petite idées ni une piste à suivre pour résoudre mon problème.
Merci.

Re: Problème boucle while

Posté : 29 sept. 2024, 15:50
par or 1
il y a une seule page project qui peut être la page courante, or tous les li a ont class='current' donc l'algo n'est pas bon.

dans le while, pour chaque entrée, il faut comparer l'url en base de donnée avec l'url de la page courante. pour cela (et afin d'éviter d'avoir à ajouter un projet un bdd et d'avoir à modifier le script php), il faut ajouter un champ pour le nom du fichier dans la table des projets.

Re: Problème boucle while

Posté : 29 sept. 2024, 20:18
par hakazizi
Oui je l'ai vérifier j'ai bien title qui ne change pas a chaque itération de la boucle. mais pourtant rien y fait, c'est justement pour cela que je ne comprends pas...
pourquoi je rentre dans tous les elseif alors que dans le principe dès qu'un if est true on est sensé sortir de la condition. et la sois toutes les conditions sont false soit true.
Je n'y comprends plus rien...

Re: Problème boucle while

Posté : 29 sept. 2024, 21:21
par or 1
quel est le nouveau code php ?

Re: Problème boucle while

Posté : 29 sept. 2024, 21:48
par hakazizi
C'est celui qui est affiché je ne l'ai pas changé

Re: Problème boucle while

Posté : 29 sept. 2024, 21:50
par or 1
$title ne change jamais dans la boucle, à l'inverse de $projects['name']

Re: Problème boucle while

Posté : 30 sept. 2024, 06:28
par hakazizi
Oui ça c'est normal il change en fonction de l'URL pour déclencher le if qui correspond.
Je ne vois pas où tu veux en venir...
Je l'ai mis dans le code du premier message, je charge la variable title au tout début.

Re: Problème boucle while

Posté : 30 sept. 2024, 08:16
par or 1
$i = 1;
$j = 0;
while ($j < 10){
 if($i == 1){
  echo '$i vaut 1';
 }
 else if($i == 2){
  echo '$i vaut 2';
 }
$j++;
}
que va afficher ce code ?

Re: Problème boucle while

Posté : 30 sept. 2024, 08:31
par hakazizi
Le principe je le connais
0
1
2
Etc.
Mais en quoi cela va m'aider à trouver la solution de mon problème ?
Euh non Parse error en php else et if sont attaché c'est en js qu'il sont séparés...

Re: Problème boucle while

Posté : 30 sept. 2024, 08:36
par or 1
non, exécutez ce code en vrai pour vérifier (avec onlinephp.io par exemple).