我使用一些php帮助创建了此菜单,以便根据页面请求添加.active
。
像这样:
<ul class="menu_lateral">
<li><a <?php if(($_REQUEST['p']=="estufas") || ($_REQUEST['p']=="estufas-1")){?> class="active" <?php } ?> href="index.php?p=estufas">Estufas</a></li>
<li><a <?php if($_REQUEST['p']=="recuperadores"){?> class="active" <?php } ?> href="index.php?p=recuperadores">Recuperadores</a></li>
<li><a <?php if($_REQUEST['p']=="salamandras"){?> class="active" <?php } ?> href="index.php?p=salamandras">Salamandras</a></li>
<li><a <?php if($_REQUEST['p']=="churrasqueiras"){?> class="active" <?php } ?> href="index.php?p=churrasqueiras">Churrasqueiras</a></li>
</ul>
正如您在第一项上看到的,还有另一个ESTUFA页面。因此,如果请求是ESTUFAS,它将添加.active
并在请求为ESTUFAS-1时添加它。
问题是,我想添加很多页面,estufas-1,2,3,4,5等等,为此我必须添加很多OR到我的If或者也许把它改成一个案例。但这似乎是太多的工作,而且不会有动力。
有没有办法让它成为任何数字,例如:
if(($_REQUEST['p']=="estufas") || ($_REQUEST['p']=="estufas-ANYNUMBER"))
如果请求是estufas或estufas-1或estufas-2或estufas-3等,它会添加.active
。
这会让事情变得如此简单。
有没有办法做到这一点?还是其他任何解决方案?
答案 0 :(得分:2)
您可以随时使用stripos之类的内容来查找是否存在
if(stripos($_REQUEST['p'], 'estufas') !== false) // We have estufas
答案 1 :(得分:1)
如果条件:
,您可以在里面使用此代码preg_match('/^estufas(-\d)?$/', $_REQUEST['p'])
结果将是:
<ul class="menu_lateral">
<li><a <?php if(preg_match('/^estufas(-\d)?$/', $_REQUEST['p'])){?> class="active" <?php } ?> href="index.php?p=estufas">Estufas</a></li>
<li><a <?php if($_REQUEST['p']=="recuperadores"){?> class="active" <?php } ?> href="index.php?p=recuperadores">Recuperadores</a></li>
<li><a <?php if($_REQUEST['p']=="salamandras"){?> class="active" <?php } ?> href="index.php?p=salamandras">Salamandras</a></li>
<li><a <?php if($_REQUEST['p']=="churrasqueiras"){?> class="active" <?php } ?> href="index.php?p=churrasqueiras">Churrasqueiras</a></li>
</ul>