Как остановить класс активных в боковой панели навигации в цикле

Я кодировал боковую панель навигации и добавил цикл в <li> для бренд-класса. который извлек из базы данных!

Ниже приведен код боковой панели навигации.

Проблема в <li class='active'> включил со всеми ли. я только хотел включить активную с открытой страницей сайта. Как сломать li с помощью цикла?

<div class="col-sm-2">
<nav class="nav-sidebar">
<ul class="nav">
<li><a href="<?php echo(BASE_URL); ?>index.php">Home</a></li>
<?php
try {

$brands = Brand::get_brands();
foreach ($brands as $b) {

echo("<li class='active'><a href='" . BASE_URL . "products/products.php?brandID=$b->brandID'>$b->brand_name</a></li>");
}
} catch (Exception $ex) {
echo("<li>" . $ex->getMessage() . "</li>");
}
?>

<li class="nav-divider"></li>
<li><a href="<?php echo(BASE_URL); ?>login.php"><i class="glyphicon glyphicon-off"></i> Sign in</a></li>
</ul>
</nav>
</div>

Изображение скриншота боковой панели: Скриншот боковой навигации

0

Решение

Исходя из сделанных вами ссылок, я предполагаю, что ваш URL выглядит примерно так yoursite.com/products/products.php?brandID=150, Вы можете использовать brandID из URL, позвонив $_GET['brandID'],

Поэтому мы проверяем, установлено ли оно, и сравниваем значение с brandID внутри цикла.

<div class="col-sm-2">
<nav class="nav-sidebar">
<ul class="nav">
<li><a href="<?php echo(BASE_URL); ?>index.php">Home</a></li>
<?php
try {

$brands = Brand::get_brands();
foreach ($brands as $b) {
// adding this line:
$class = ( isset($_GET['brandID']) and $_GET['brandID'] == $b->brandID) ? ' class="active"' : '';
echo("<li".$class."><a href='" . BASE_URL . "products/products.php?brandID=$b->brandID'>$b->brand_name</a></li>");
}
} catch (Exception $ex) {
echo("<li>" . $ex->getMessage() . "</li>");
}
?>

<li class="nav-divider"></li>
<li><a href="<?php echo(BASE_URL); ?>login.php"><i class="glyphicon glyphicon-off"></i> Sign in</a></li>
</ul>
</nav>
</div>
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]