页面刷新后的 PHP 活动部分

我正在尝试用 PHP 创建一页导航菜单。我希望它在 PHP 中的原因是因为我可以稍后添加其他代码,并且我希望用户即使在刷新后也能位于同一页面上。


我有一个包含生成列表项的无序列表。列表项是用数组生成的。

(我希望将键/值分开,因为实际代码会有所不同。这只是一个示例。)


$nav = array(

       "home" => "home",

       "about" => "about",

       "contact" => "contact"

);


echo '<ul>';

foreach( $nav as $id => $name )

{

    echo '<li><a href="#'.$id.'">'.$name.'</a></li>';

}

echo '</ul>';


// outputs:

<ul>

   <li><a href="#home">home</a></li>

   <li><a href="#about">about</a></li>

   <li><a href="#contact">contact</a></li>

</ul>

然后我想要一些 div 作为部分


foreach( $nav as $s_id => $s_name)

{

    echo '<div id="'.$s_id.'">Some section text</div>';

}

现在我需要知道如何根据当前活动 ID 将显示设置为阻止或无?


浮云间
浏览 51回答 1
1回答

郎朗坤

虽然我个人认为这更多是 JavaScript 的工作,但在上面的问题和评论中,您指定要在 PHP 中执行此操作。在这种情况下,这些锚标记将需要是页面的实际链接。在本示例中,我假设该页面名为index.php. (如果有不同,请使用您的页面。)使用查询字符串参数将锚点更新为指向页面的链接:<li><a href="index.php?active=home">home</a></li><li><a href="index.php?active=about">about</a></li><li><a href="index.php?active=contact">contact</a></li>然后,在 PHP 代码中,您可以通过active查询字符串参数确定哪一个是“活动的”。如果没有指定参数,则从默认值开始"home"(这是用户第一次访问该页面):$active = "home";if (isset($_GET["active"])) {&nbsp; &nbsp; $active = $_GET["active"];}然后在渲染<div>元素时您可以指定它们的样式:foreach( $nav as $s_id => $s_name){&nbsp; &nbsp; echo '<div id="'.$s_id.'" style="display:'.($s_id == $active ? "block" : "none").'">Some section text</div>';}
打开App,查看更多内容
随时随地看视频慕课网APP