我正在尝试用 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 将显示设置为阻止或无?
1 回答
郎朗坤
TA贡献1921条经验 获得超9个赞
虽然我个人认为这更多是 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"])) {
$active = $_GET["active"];
}
然后在渲染<div>元素时您可以指定它们的样式:
foreach( $nav as $s_id => $s_name)
{
echo '<div id="'.$s_id.'" style="display:'.($s_id == $active ? "block" : "none").'">Some section text</div>';
}
- 1 回答
- 0 关注
- 50 浏览
添加回答
举报
0/150
提交
取消