Problème de syntaxe. Mettre 2 classes pour une page

Problème de syntaxe. Mettre 2 classes pour une page - PHP - Programmation

Marsh Posté le 21-06-2010 à 14:43:32    

Salut,
Je vais essayé de faire simple pour éviter de mettre  15 pages de code...
Je pense que les classes du code html ne sont pas prises en compte. La classe currentpage qui se trouve dans le code php fonctionne.
Il doit y a voir une petite erreur sur la ligne mais je n'arrive pas à touver.

Code :
  1. <li class="top"><a <?php echo (preg_match('/^.*?\/gallery/',$_SERVER['REQUEST_URI']) || $_SERVER['REQUEST_URI'] == "/gallery/music/events/events.php" ) ?'class="currentpage"':'' ?> href="#" class="top_link"><span class="down">GALERIES PHOTO</span></a>


A priori, ça serait la classe top_link qui ne fonctionnerai pas.
Merci pour votre aide

Message cité 1 fois
Message édité par djodjolyon le 21-06-2010 à 20:55:50
Reply

Marsh Posté le 21-06-2010 à 14:43:32   

Reply

Marsh Posté le 21-06-2010 à 16:47:24    

Plutôt que le code de la page sur le serveur, il faudrait voir le code la page telle qu'elle apparait dans le navigateur d'un utilisateur (donc, avec le PHP qui a été interprété).
 
Peut-être que la a href a deux classes au lieu de n'en avoir qu'une, ou bien que la classe "top_link" est absente.
Peut-être que la classe "down" du span intérieur contredit la classe top_link.
Peut-être que la définition de la classe top_link est défecteuse.

Reply

Marsh Posté le 21-06-2010 à 18:26:09    

Merci pour l'aide.
En fait, tout est à priori ok au niveau des css... Après un dernier test effectué.
En fait ce qu'il me faudrait, c'est au niveau du code php. Il faudrait que je puisse assigner 2 classes différentes mais je n'y arrive pas
J'ai testé avec ?'class="currentpage top_link"':'' ?
?'class="currentpage, top_link"':'' ?
?'class="currentpage" "top_link"':'' ?


Message édité par djodjolyon le 21-06-2010 à 18:26:45
Reply

Marsh Posté le 22-06-2010 à 09:43:43    

1. Répondez à ma question. Quel est le code que voit le navigateur du poste client ?
 
2. Pourquoi s'ennuyer avec l'opérateur ternaire ?:, alors qu'on peut faire cela facilement et de manière plus lisible avec un if ?
Les utilisateurs d'opérateurs ternaires sont des avares. Ils veulent gagner quelques octets. Ils pensent d'abord à l'optimisation, alors qu'il faut d'abord penser à la fiabilité et à la lisibilité.
 
Essayer :

<li class="top"><a href="#"  
<?php  
if (preg_match('/^.*?\/gallery/',$_SERVER['REQUEST_URI'])
    || $_SERVER['REQUEST_URI'] == "/gallery/music/events/events.php" )  
  echo 'class="currentpage"';
else
  echo 'class="top_link"';
?>
><span class="down">GALERIES PHOTO</span></a>


Message édité par olivthill le 22-06-2010 à 09:44:55
Reply

Marsh Posté le 22-06-2010 à 10:51:27    

djodjolyon a écrit :

Salut,
Je vais essayé de faire simple pour éviter de mettre  15 pages de code...
Je pense que les classes du code html ne sont pas prises en compte. La classe currentpage qui se trouve dans le code php fonctionne.
Il doit y a voir une petite erreur sur la ligne mais je n'arrive pas à touver.

Code :
  1. <li class="top"><a <?php echo (preg_match('/^.*?\/gallery/',$_SERVER['REQUEST_URI']) || $_SERVER['REQUEST_URI'] == "/gallery/music/events/events.php" ) ?'class="currentpage"':'' ?> href="#" class="top_link"><span class="down">GALERIES PHOTO</span></a>


A priori, ça serait la classe top_link qui ne fonctionnerai pas.
Merci pour votre aide

 
Code :
  1. class="<?php echo (preg_match('/^.*?\/gallery/',$_SERVER['REQUEST_URI']) || $_SERVER['REQUEST_URI'] == '/gallery/music/events/events.php') ? 'currentpage top_link' : 'top_link'; ?>"


Message édité par Tyrant le 22-06-2010 à 10:53:41
Reply

Sujets relatifs:

Leave a Replay

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