gpt4 book ai didi

php - 在 PHP 循环中连接 CSS 类

转载 作者:太空宇宙 更新时间:2023-11-04 02:48:57 25 4
gpt4 key购买 nike

我想用 php 在当前页面上添加一个 class=active

class_navigation.php

$menu = array(
'home' => array('text'=>'Home', 'url'=>'?p=home'),
'away' => array('text'=>'About', 'url'=>'?p=about'),
'about' => array('text'=>'Contact', 'url'=>'?p=contact'),
);

class class_navigation {
public static function GenerateMenu($items) {
$html = "<nav>\n";

foreach($items as $item) {
$class ="";
if ($page == $item) {
$class = "class='active'";
}
$html .= "<a href='{$item['url']}' ".$class.">{$item['text']}
</a>\n";
}
$html .= "</nav>\n";
return $html;
}
};

导航.php

<?php 
echo class_navigation::GenerateMenu($menu);
?>

索引.php

require_once('class/class_navigation.php');
require_once('includes/head.php');
require_once('includes/nav.php');

switch($_GET['p']){
case "home":
$page = 'home';
include_once('pages/home.php');
break 1;
case "about":
$page = "about";
include_once('pages/about.php');
break 1;
case "contact":
$page = "contact";
include_once('pages/contact.php');
break 1;
}

require_once('includes/footer.php');

最佳答案

删除 switch 中的 $page 并将您的类修改为此。

  • 现在 GenerateMenu 使用 $page = $_GET['p']; 获取当前页面
  • 将它与数组中的 url 值进行比较。
  • parse_str(substr($item['url'], 1)); 解析这个 url,你会得到 $p 等于 home,如果 url 是 '?p=home' 等等。

<?php
class class_navigation {
public static function GenerateMenu($items) {
$html = "<nav>\n";
$page = isset($_GET['p']) ? $_GET['p'] : '';

foreach($items as $item) {
$class = "";

parse_str(substr($item['url'], 1));

if ($page == $p) {
$class = " class='active'";
}

$html .= "<a href='{$item['url']}'".$class.">{$item['text']}</a>\n";
}

$html .= "</nav>\n";
return $html;
}
}

关于php - 在 PHP 循环中连接 CSS 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33364555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com