lien en gras dans menu de la page active

Petit nouveau ! | 3 Messages

26 déc. 2009, 15:46

Bonjour,

Après lecture d'un fichier xml, j'affiche un menu parfaitement fonctionnel, mais je voudrais avoir votre avis sur mon code. Afin d'appliquer un style diffèrent sur le lien de la page active je fais un test sur la page qui est ouverte
et si elle est égale au lien que je lui donne alors j'affiche le lien gras dans le menu, enfin j'essaye car cela ne fonctionne pas ! .

$newprice est la seconde variable de mon url, je l'ai testé en bas
%s est la partie de mon lien équivalente à $newprice dans mon menu,
, au besoin j'ai mis %s dans une variable $format, que j'ai testé
avec le m^me code ci-dessous,
maintenant si je teste en bas, j'obtiens faux, il ya un
problème quelque dans mon écriture part mais je ne comprends pas quoi ?.
en tout cas dans mon menu il y a un lien qui correspond bien cela, c'est sur !

manuso, merci de votre aide

Code : Tout sélectionner

<? $i = 1; foreach ($attributes as $attribute) { if($i) { echo "<li class='g'>{$attribute->name}</li>"; $values = $attribute->attributeValues->attributeValue; foreach ($values as $value){ $format="%s"; // if ($newprice == '%s') { echo 'vrai'; } else { echo 'faux'; } // if($format == strstr('$format','$newprice')) // if ($_SERVER["REQUEST_URI"] == '".$url.",%s,".$one.".".htm."') if ($newprice == '%s') { printf("<li><a href=".$url.",%s,".$one.".".htm."><b>%-16s</b></a></li>", $value["id"], $value->name); } else { printf("<li><a href=".$url.",%s,".$one.".".htm."> %-16s</a></li>", $value["id"], $value->name); } } } $i++; } ?>

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

26 déc. 2009, 16:33

Je pense que ton problème est lié à un soucis de conpréhension :
%s est la partie de mon lien équivalente à $newprice dans mon menu
Alors en fait non pas du tout :)
%s ne s'utilise qu'à l'intérieur d'un printf(), dans lequel il est remplacé par la chaine correspondante parmis les paramètres spécifiés... en dehors, c'est rien de plus que la chaine de caractères "%s" :) Ce qu'il te faut tester, c'est la valeur qui se trouve dans $value["id"] (et qui alimente le %s du printf... chais pas si je suis très clair :? )

Ton code devrait à priori être quelque chose du genre :
if ($newprice == $value["id"]) 
{ printf("<li><a href=".$url.",%s,".$one.".".htm."><b>%-16s</b></a></li>", $value["id"], $value->name);
} 
else 
{ 
printf("<li><a href=".$url.",%s,".$one.".".htm."> %-16s</a></li>", $value["id"], $value->name); 
}
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 3 Messages

26 déc. 2009, 17:13

Absolument merci beaucoup, je viens de faire un pas en avant là,
%s ne s'utilise qu'à l'intérieur d'un printf(), car cela fait un peu
de temps que je rame là dessus !

vraiment merci
et bonnes fêtes
manuso