I deduce the woody menu from mysql. By clicking on the category, go subcategories (if any). But if there are no subcategories, then the category needs to become a link. I have a menu on jQuery. Display menu in php. On php, I created a condition (17th line) to add the class "disable" if the "parent_id" is equal to the "id" category. But this condition does not work. What's my mistake?
$(document).ready(function () { $('.sub > a').click(function(){ if ($(this).attr('class') != 'active'){ $('.sub ul').slideUp(); $(this).next().slideToggle(); } return false; }); $('.mini-menu > ul > li > a').click(function(){ $('.mini-menu > ul > li > a, .sub a').removeClass('active'); $(this).addClass('active'); }), $('.sub ul li a').click(function(){ $('.sub ul li a').removeClass('active'); $(this).addClass('active'); }); $('.slider_slick_items').slick({ prevArrow: '<i id="prev_arrow_slider" class="fa fa-angle-left"></i>', nextArrow: '<i id="next_arrow_slider" class="fa fa-angle-right"></i>' }); });
php <?php $query = "SELECT * FROM categories"; $result = mysqli_query($link, $query) or die (mysqli_error($link)); for ($data = []; $row = mysqli_fetch_assoc($result); $data[] = $row); $content = ''; $tree = []; foreach ($data as $elem) { $tree[$elem['parent_id']][] = $elem; } function treePrint($tree, $pid=0) { if (empty($tree[$pid])) { return; } echo '<ul>'; foreach ($tree[$pid] as $k => $row) { if ($row['parent_id'] == '0') { $class = 'sub'; } else { $class = 'down_item'; } echo "<li class=\"$class\"><a href=\"?itemCard=$row[id]\">$row[category]</a>"; if (isset($tree[$row['id']])) { treePrint($tree, $row['id']); } echo '</li>'; } echo '</ul>'; } ?> <div class="mini-menu"> <?php treePrint($tree); ?> </div>