Php 选择菜单选项后,所选类不会自行设置
我在php脚本中选择的菜单有问题 当我点击其中一个菜单选项时,它不会将li类设置为selected 我已经找了好几个小时了,但还是找不到。谢谢你正手的帮助 下面是PHP代码:Php 选择菜单选项后,所选类不会自行设置,php,css,Php,Css,我在php脚本中选择的菜单有问题 当我点击其中一个菜单选项时,它不会将li类设置为selected 我已经找了好几个小时了,但还是找不到。谢谢你正手的帮助 下面是PHP代码: private $selectedmenu = ''; public function set_selectedmenu($set_selectedmenu) { $this->selectedmenu = $set_selectedmenu; } public function html() {
private $selectedmenu = '';
public function set_selectedmenu($set_selectedmenu) {
$this->selectedmenu = $set_selectedmenu;
}
public function html() {
$html_menu='';
$menu = array(
'test'=>array('optie'=>'test', 'url'=>'index.php?page=test'),
'test2'=>array('optie'=>'test2', 'url'=>'index.php?page=test2'),
'test3'=>array('optie'=>'test3', 'url'=>'index.php?page=test3'),
'test4'=>array('optie'=>'test4', 'url'=>'index.php?page=test4'),
);
foreach($menu as $key => $menuoptie) {
if ($key==$this->selectedmenu) {
$class=' class="selected"';
}else{
$class='';
}
$html_menu.="<li{$class}><a href=\"{$menuoptie['url']}\">{$menuoptie['optie']}</a></li>\n";
}
return(
<<<EOT
<!DOCTYPE html>
<html>
<head>
<title>{$this->html_titel}</title>
<meta charset="utf-8" />
<link rel="stylesheet" type="text/css" href="stylesheet/css.css" />
</head>
<body>
<ul class="menu">
{$html_menu}
</ul>
</body>
</html>
EOT
);
}
您能否验证$selectedmenu是否为'test'或'test2'或我尝试过的'var\u dump$this->selectedmenu;'它返回空字符串,但当我将属性设置为:private$selectedmenu=;示例:private$selectedmenu='home';然后将所选类设置为“主”。在foreach,我在菜单中循环查看在哪里设置所选的类,这是否出错?我不确定我是否理解你的意思,但听起来设置selectedmenu有问题,您的循环LGTM尝试在我尝试设置selectedmenu的地方转储,它返回空字符串…因此,无论您在哪里调用set_selectedmenu,都会传入一个空字符串。。。
.menu{
padding-left: 117px;
margin-top: 10px;
list-style: none;
overflow: hidden;
margin-left:40px;
}
.menu li {
padding: 0;
margin: 0;
float: left;
width: 200px;
border: 1px solid black;
}
.menu li:hover a {
background-color:#FF8055;
font-weight:bold;
}
.menu li a {
text-align:center;
background-color:#f60;
text-decoration: none;
display: block;
padding: 10px 0px 10px 10px;
text-align: left;
font-weight:bold;
color:white;
}
.menu li.selected a{
background-color: black;
text-decoration:underline;
}