簡體   English   中英

如何使用PHP將“活動”類設置為菜單項?

[英]How do I set an 'active' class to a menu item using PHP?

我想為當前活動頁面設置class="active" ,但無法使其正常工作。 每次包含<?php echo ($page == 'home') ? 'class="current"' : '';?>時,我都會不斷遇到相同的錯誤<?php echo ($page == 'home') ? 'class="current"' : '';?> <?php echo ($page == 'home') ? 'class="current"' : '';?>在我的錨和列表標簽中:

解析錯誤:語法錯誤,意外的“ home”(T_STRING),期望為“,”或“;” 在第18行的C:\\ Users \\ Standard \\ Desktop \\ Test \\ includes \\ top.php中

我只是不知道我現在在做什么錯……過去3個小時我一直在研究和尋找答案,但仍然無法解決。 我只是不斷收到語法錯誤。 :(

這是我當前的代碼:

<?php
echo '
    <div class="top-nav-bg">
        <div class="top-nav container">
            <div class="row">
                <div class="top-nav sixteen columns">
                    <ul>
                        <li><a <?php echo ($page == 'home') ? 'class="active"' : '';?> href="/index.php">Home</a></li>
                        <li><a href="/about-us/">About Us</a></li>
                        <li><a href="/our-services/">Our Services</a></li>
                        <li><a href="/products/">Products</a></li>
                        <li><a href="/contact-us/">Contact Us</a></li>
                    <ul>
                </div>
            <div>
        </div>
    </div>
' ; >?

它包含在我的index.php文件中:

<!DOCTYPE html>
  <html lang="en">
   <head>

    <?php include ('/includes/header.php'); ?>

    <title>Home - Test</title>

  </head>
  <body id="homepage">

    <?php $page = 'home'; include ('/includes/top.php') ;?>

</body>
</html>

您已經在PHP中,因此您不需要<?php echo 應該只是:

<?php
echo '
    <div class="top-nav-bg">
        <div class="top-nav container">
            <div class="row">
                <div class="top-nav sixteen columns">
                    <ul>
                        <li><a '.($page == 'home') ? 'class="active"' : ''.' href="/index.php">Home</a></li>
                        <li><a href="/about-us/">About Us</a></li>
                        <li><a href="/our-services/">Our Services</a></li>
                        <li><a href="/products/">Products</a></li>
                        <li><a href="/contact-us/">Contact Us</a></li>
                    <ul>
                </div>
            <div>
        </div>
    </div>
' ; 
?>

沒有代表對此發表評論,因此予以答復。

您只輸出一個變量,因此您不需要在php中包含所有html。 另外,通過刪除它,您將不必擔心帶'" 。另外,如果您使用的是不錯的IDE /編輯器,則可以更好地突出顯示語法。

您可以通過以下更干凈的方法進行操作:

<div class="top-nav-bg">
    <div class="top-nav container">
        <div class="row">
            <div class="top-nav sixteen columns">
                <ul>
                    <li><a <?= ($page === 'home') ? 'class="active"' : ''; ?> href="/index.php">Home</a></li>
                    <li><a href="/about-us/">About Us</a></li>
                    <li><a href="/our-services/">Our Services</a></li>
                    <li><a href="/products/">Products</a></li>
                    <li><a href="/contact-us/">Contact Us</a></li>
                <ul>
            </div>
        <div>
    </div>
</div>

注意使用<?= ,這是<?php echo簡寫。 只有php 5.4+會接受它們,因此如果不確定不確定是否使用,請使用<?php echo

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM