web-dev-qa-db-fra.com

Impossible d'obtenir la variable à mettre à jour dans l'instruction IF / Else en fonction de la classe de page

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>
1
Dtorr1981

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 .

2
Sudhir Sapkal