probleme affichage php/html (simple)

probleme affichage php/html (simple) - PHP - Programmation

Marsh Posté le 21-03-2006 à 09:27:56    

Salut ;)
 
J'ai un petit probleme tout con :
 
D'un coté j'ai une fonction qui change la 'class=' d'un menu si le menu en question est celui ou le surfeur se trouve :

Code :
  1. function rub_active($rubrique){
  2.           $page = array_pop(explode('/', $_SERVER['PHP_SELF']));
  3.           if ($page == $rubrique) echo ' class="menu-item-courant" ';
  4.           else echo ' class="menu-item" ';
  5.     }


 
De l'autre, j'affiche le menu, en faisant appel a la fonction ci-dessus :

Code :
  1. $page = array_pop(explode('/', $_SERVER['PHP_SELF']));
  2.                 echo '<ul class="menu-liste">';
  3.                  /* la partie suivante (1) s'affiche parfaitement dans le navigateur */
  4.                 echo '<li ';
  5.                 echo rub_active("articles.php" );
  6.                 echo ' ><a href="articles.php" title="Fiches mat&eacute;riels">Fiches mat&eacute;riels</a></li>';
  7.                
  8.                 /* la partie suivante (2), pourtant la meme qu'au dessus juste réécrite en 1 ligne foire */
  9.                 echo '<li '.rub_active('add_fiche.php').' ><a href="add_fiche.php" title="">Ajouter une fiche mat&eacute;riel</a></li>';
  10.                 }
  11.                 echo '</ul>';


le <li> (1) s'affiche nikel alors que le <li> (2) place le texte renvoyé par la fonction rub_active AVANT la balise <li > (alors que ca devrait etre entre le '<li ' et le '>' )
Le code source une fois la page calculée me donne ca :

Code :
  1. class="menu-item-courant" <li  ><a href="add_fiche.php" title="">...etc


 
Une idée? merci beaucoup a celui qui me sauvera la vie ;)


Message édité par bixibu le 21-03-2006 à 09:29:04
Reply

Marsh Posté le 21-03-2006 à 09:27:56   

Reply

Marsh Posté le 21-03-2006 à 10:01:53    

Hmmm... Un echo dans un echo ? C'est original...
 
Commence par apprendre le php avant de faire du copier-coller de codes dont tu ne comprends pas le sens.
 

Reply

Marsh Posté le 21-03-2006 à 10:15:48    

il ya plus joli que ça:
> $page = array_pop(explode('/', $_SERVER['PHP_SELF']));
- essaye parse_url() et basename()
 
 
 
 

Reply

Marsh Posté le 21-03-2006 à 10:31:04    

smaragdus a écrit :

Hmmm... Un echo dans un echo ? C'est original...
 
Commence par apprendre le php avant de faire du copier-coller de codes dont tu ne comprends pas le sens.


 
J'avais pas vu cette erreur (minime?) qui a absolument aucune influence sur mon probleme.. Mais merci ta remarque etait méga-pertinente..
Je sais pas si tu as lhabitude de copier-coller du code (t'en parle si bien), mais je code tout ca moi meme.. si ce code etait copié collé, je pense d'ailleurs pas que l'erreur du echo aurait été la.
 
Bref les remarque comme ca tu te les garde ou tu vas gueuler contre les semi-remorque sur le périfs si t'as vraiment envie de te défouler aujourd'hui, ce sera déja plus courageux.
 

Citation :

il ya plus joli que ça:
> $page = array_pop(explode('/', $_SERVER['PHP_SELF']));
- essaye parse_url() et basename()


Okay merci je vais tester ca ;)
 
Mais ce ne résoud pas mon probleme :(

Reply

Marsh Posté le 21-03-2006 à 10:37:12    

As tu modifié ta fonction rub_active pour qu'elle est une valeur de retour, très utile ici.  
 
Ceci en lieu et place du echo bien évidemment ( et c'est là que tu vois que la remarque de Smaragdus est très pertinente.)

Reply

Marsh Posté le 21-03-2006 à 10:44:19    

Okay mea culpa ca marche :/
 
Mais bon Smaragdus, juste pour un oubli de ma part c'est tres rageant de voir un 'Commence par apprendre le php avant de faire du copier-coller de codes dont tu ne comprends pas le sens.'.. surtout que j'ai rien copié collé de diou
 
:hello:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed