J'essaie de mettre à jour de manière dynamique une variable dans un lien en fonction de la classe de page, mais je ne parviens pas à obtenir la variable ebox
à mettre à jour dans l'instruction if/else ci-dessous.
Actuellement, la variable est toujours 0
, c'est comment il est initialisé. J'ai implémenté le code ici et configurer les classes de page pour les pages home
, about
et contact
conformément au code ci-dessous.
Cependant, la valeur ebox
ne devient jamais celle voulue 1
, 2
, ou 3
.
Des suggestions quant à ce qui me manque?
<?php
$menu = JFactory::getApplication()->getMenu()->getActive();
$class = $menu->params->get('pageclass_sfx');
?>
<script>
var pageclass = "'<?php echo $class ;?>'";
var ebox = 0;
document.write(pageclass, ebox);
if (pageclass == "home") {
ebox = 1;
}
else if (pageclass == "about") {
ebox = 2;
}
else if (pageclass == "contact") {
ebox = 3;
}
document.write('<a class="btn" data-ebox="' + ebox + '" href="#">Menu</a>');
document.write(pageclass,ebox);
</script>
Il semble que votre valeur pageclass
soit déclarée comme étant 'home'
(single-quoted), mais vous souhaitez que ce soit home
. Supprimez simplement les guillemets simples, comme ceci:
var pageclass = "<?php echo $class; ?>";
Cette syntaxe fournit le même effet avec une brièveté améliorée:
var pageclass = "<?=$class?>";
Voir ce post concernant balises courtes PHP .