كيف يتم اضافة class للصفحة المتواجد بها فقط
جربت الكثير من الاكواد و لكن لا يشتغل بسبب الqurey
مثلا
example.com/home.php
يعمل
لكن
example.com/me.php?id=1
لا يعمل
الرجاء توضيح المشكلة مع أرفاق الكود :)
شكرا على ردك السريع
المطلوب :
اضافة class
اسمه active
فى الnavbar
كود الnavbar
<nav class="navbar navbar-inverse" role="navigation"> <div class="container"> <div class="navbar-header navbar-right"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#mynavbar"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="#">اسم الموقع</a> </div> <div class="collapse navbar-collapse" id="mynavbar"> <ul class="nav navbar-nav navbar-right"> <li class="active"><a href="#">الصفحة الرئيسية</a></li> <?php $sql = "select * from db"; $query = mysql_query($sql); while ($res = mysql_fetch_array($query)){ echo "<li><a href=\"me.php?id=".$res['id']."\">".$res['name']."</a></li>"; } ?> </ul> </div> </div> </nav>
جربت هذا الكود و لاكن لم يعمل $(function(){ var url = window.location.pathname; var elementName = url.match(/\/(\w+).?\/?$/); $('.collapse .navbar-collapse' + elementName).addClass('active'); });
أضف التحقق من الصفحة الحالية عبر php وليس javascript
مثلا :
.............. <ul class="nav navbar-nav navbar-right"> <li ><a href="#">الصفحة الرئيسية</a></li> <?php $sql = "select * from db"; $query = mysql_query($sql); while ($res = mysql_fetch_array($query)){ $isActive = false; if( $res['id'] == $_GET['id'] ){ $isActive = true; } echo "<li ".($isActive ? 'class="active"' : '')."><a href=\"me.php?id=".$res['id']."\">".$res['name']."</a></li>"; } ?> </ul> .............
شكرا لك
تعمل
جرب هذا
$(function() { $('nav a[href^="/' + location.pathname.split("/")[1] + '"]').addClass('active'); });
مقتبس من هنا
تعمل على الصفحات التى تنتهى بدون name.php?id=1
إذا عليك جلب الرابط، ثم نزع الإضافة
جرب استخدام regex ليحذف كل شيء بعد علامة الاستفهام
مجتمع مخصص للغة الـ PHP
صمم موقعك كاملا بالسحب والإفلات بدون خبرة برمجية، واحجز مكانك على الإنترنت.