Я кодировал боковую панель навигации и добавил цикл в <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>
Изображение скриншота боковой панели: Скриншот боковой навигации
Исходя из сделанных вами ссылок, я предполагаю, что ваш 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>
Других решений пока нет …